發表文章

目前顯示的是有「s1081444」標籤的文章

s1081444 Homework #7

圖片
  1122 Digital Image Processing Assignment #7   學號: s1081444 姓名:張家豪   主題: Image Segmentation and Object Dection 影像分割及物件偵測   專案目標: 撰寫一個程式來偵測出附件 2 張視訊照片中的所有書桌的桌面區域。 (1) 標示出每張桌子的桌面的矩形邊界框 (Bounding box) (2) 標示出偵測到桌子的桌角   開發平台: Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++   程式架構與功能說明: 執行後顯示藍色邊界框和紅點桌角   1.      轉換為 hsv ,篩選出 mask 2.      對 mask 做侵蝕和膨脹 3.      用 findContours 找輪廓 4.      用 convexHull 填滿輪廓 5.      找每個輪廓的矩形邊界框 6.      找輪廓最上最下最左最右的點 成果展示與討論:

s1081444 Homework #6

圖片
1122 Digital Image Processing Assignment #6 學號:s1081444 姓名:張家豪 主題:Morphological Image Processing 數學形態學影像處理練習 專案目標: 利用數學型態影像處理,計算附件圖片中的 (1)大木圓榫數量 (2)小木圓榫數量 開發平台:Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 執行程式後,會顯示出圖像圈選出大圓和小圓的地方,以及輸出大圓和小圓的數量 成果展示與討論: 執行結果,黑色圓是大木圓榫,白色圓是小木圓榫,共19大29小

s1081444 Homework #5

圖片
1122 Digital Image Processing Assignment #5 學號:s1081444 姓名:張家豪 主題:Run-Length Based Image Compression 影像壓縮練習 專案目標: 設計一個基於Run-Length的壓縮方法,並計算三張圖像的平均壓縮率。 開發平台:Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 執行程式後,會依序顯示3張影像的原大小、壓縮後大小以及壓縮率,最後會顯示3張影像的平均壓縮率,執行檔所在資料夾會生成壓縮後的txt檔。 成果展示與討論: 執行結果

s1081444 Homework #4

圖片
1122 Digital Image Processing Assignment #4 學號:s1081444 姓名:張家豪 主題:膚色偵測 Skin Color Detection 專案目標: 撰寫程式,讀取圖像,偵測出圖像中的膚色區域,計算出與groundtruth的IOU 開發平台: Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 程式開始執行後會讀取與執行檔同個資料夾內的image/Photo和image/GroundTruth中的圖像,顯示出當前圖像的原本樣貌、處理過後得到的mask、GroundTruth三張圖,終端會顯示當前圖像計算出的IOU,按任意鍵會顯示下一張的結果,最後會輸出所有IOU的平均。 成果展示與討論: pic1執行結果 pic2執行結果 pic3執行結果 pic4執行結果 pic5 原圖 pic5 mask pic5 groundtruth pic6執行結果 IOU計算結果

s1081444 Homework #3

圖片
1122 Digital Image Processing Assignment #3 學號:s1081444 姓名:張家豪 主題:   傅立葉轉換與影像復原處理 專案目標: 撰寫程式,讀取圖像,生成出振幅頻譜圖、相位頻譜圖、修復後的圖像。 開發平台: Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 使用者在console輸入圖像檔案名稱(含副檔名),輸入完成會顯示原始圖片、振幅頻譜圖、相位頻譜圖、修復後的圖像共四張。 成果展示與討論: image1.jpg原圖和修復後的圖 image1.jpg振幅頻譜圖和項為頻譜圖 image2.jpg原圖 image2.jpg修復後的圖 image2.jpg振幅頻譜圖 image2.jpg相位頻譜圖

s1081444 Homework #2

圖片
1122 Digital Image Processing Assignment #2 學號:s1081444 姓名:張家豪 主題: 邊緣偵測與圖像二值化 專案目標: 撰寫程式,讀取圖像,生成對應的黑白線條圖像,使用者可滑動拉條儲存該圖像。 開發平台: Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 使用者在console輸入圖像檔案名稱(含副檔名),輸入完成會顯示黑白線條圖像預覽視窗,上面有trackbar save image,將save image的值調整至1會將預覽的圖像輸出為output.jpg。 成果展示與討論: 執行時的console視窗需輸入檔名 yzu1.jpg執行結果 yzu2.jpg執行結果 yzu3.jpg執行結果 yzu4.jpg執行結果

s1081444 Homework #1

圖片
1122 Digital Image Processing Assignment #1 報告 學號:s1081444 姓名:張家豪 主題: 圖像感興趣區域裁切、旋轉與縮放 專案目標: 撰寫一個OpenCV 程式,讀取一張圖像,使用者可以從圖像選取一個感興趣的矩形區域,裁切並縮放至指定的大小後儲存成一張新圖像,作為網頁設計的圖片素材。 開發平台: Microsoft Windows 11, Visual Studio 2022, OpenCV 4.90, C++ 程式架構與功能說明: 1. 使用者從Conslole 視窗輸入下列資料,來源照片檔案名稱(包含副檔名) 目標圖片的尺寸的寬與高,如紅色字體: input image filename: yzu1.jpg target image width: 600 target image height: 400 2. 輸入完後會顯示input image、preview、Control Panel三個視窗。 3. Control Panel視窗有以下共五個trackbar: Zoom:縮放比例(0至200%) Rotate:旋轉角度(0至359度) iniX:選取矩形左上點x座標 iniY:選取矩形左上點y座標 Save image:儲存檔案 4.調整Zoom、Rotate、iniX、iniY在input image視窗會顯示原圖及選取範圍的白色矩形,在preview會顯示白色矩形選取的部分,將Save image的值調整至1會將preview視窗顯示的圖片儲存成output.jpg。 成果展示與討論: 輸入yzu1.jpg、600、500後顯示以下三個視窗 調整trackbar後的變化如下 將Save image調整至1後會儲存圖片為output.jpg

s1081444 作業5

圖片
Assignment #5 主題:膚色偵測Skin Color Detection 功能: 利用你所學的 顏色(Color)的知識與技術,撰寫一個程式來偵測一張輸入照片中的皮膚 區域並將其標示出。 開發環境: Windows 10 Visual Studio 2022 OpenCV 4.2.0 C++ 過程: 1.用cvtColor()將原圖從BGR轉成HSV 2.用inRange()篩選出皮膚範圍 3.用.setTo()將2.偵測到的部分用紅色塗回原圖 執行結果:

s1081444 作業3

圖片
Assignment #3 主題:離散傅立葉轉換 DFT 練習 功能: 撰寫傅利葉轉換程式(Forward Fourier Transform and Inverse Fourier Transform)將一張圖 像轉換至頻域後,將頻譜大小與相位角度各以灰階256 色圖像方式呈現出,再呈現還 原後圖像。 開發環境: Windows 10 Visual Studio 2022 OpenCV 4.2.0 C++ 使用函數: imread(input, IMREAD_GRAYSCALE):灰階讀取圖片 copyMakeBorder(src, pad, 0, P - src.rows, 0, Q - src.cols, BORDER_CONSTANT, Scalar::all(0)):增加邊界 merge(planes, 2, complexImg):合併虛實部 dft(complexImg, complexImg):傅立葉轉換 split(complexImg, planes):分離虛實部 magnitude(planes[0], planes[1], magnitudeImg):算頻譜圖 log(magnitudeImg, magnitudeImg):計算自然對數 normalize(magnitudeImg, magnitudeImg, 0, 1, NORM_MINMAX):標準化圖片 phase(planes[1], planes[0], phaseImg):算相位圖 idft(G, G):傅立葉逆轉換 imshow("Result", magnitudeImg3):顯示圖片 執行結果: 頻譜圖 相位圖 還原圖

s1081444 作業2

圖片
 Assignment #2 主題:線條自畫像 功能: (a)利用Sobel Operators 偵測並輸出邊緣成分圖。 (b)設計一個類似素描線條的自畫像圖案。 開發環境: Windows 10 Visual Studio 2022 OpenCV 4.2.0 C++ 使用函數: imread(image_path, IMREAD_GRAYSCALE):讀取圖片為灰階 GaussianBlur(gray_img, blur_img, Size(5, 5), 0):對圖片做高斯模糊 Sobel(blur_img, grad_x, CV_16S, 1, 0, 3):利用Sobel Operator做邊緣偵測 convertScaleAbs(grad_x, abs_grad_x):將邊緣偵測後的圖片轉為8-bit addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad):合併水平和垂直邊緣圖 bitwise_not(grad, grad_not):邏輯運算NOT imshow("grad_not", grad_not):展示圖片 執行結果: 灰階圖片 高斯模糊後的圖片 Sobel_X Sobel_Y Sobel_X和Sobel_Y合起來 最後的結果圖

s1081444 作業1

圖片
 Assignment #1 主題:圖像旋轉(Image Rotation) 功能: 利用滑動條(trackbar)控制整張圖像或圖像中心內切圓逆時針旋轉0到359度 開發環境: Windows 10 Visual Studio 2022 OpenCV 4.2.0 C++ 使用函數: imread():讀取圖片 namedWindow():命名視窗 createTrackbar():生成滑動條 getRotationMatrix2D():生成旋轉矩陣 warpAffine():根據輸入的矩陣對圖片做對應的線性變換,這裡使用的是旋轉矩陣 copyTo():利用遮罩將中心內切圓複製至原圖上 imshow():顯示圖片 執行結果: 執行時會出現Rotated image及Rotated CR image兩個視窗,各有一個滑動條控制旋轉角度 一、執行初始 二、滑動條調整角度