s1091521 homework #2
s1091521 1122 Homework #2
1122 Digital Image Processing Assignment #2
學號:1091521
姓名:林哲慶
主題:邊緣偵測與圖像二值化
專案目標:
使用Python撰寫一個OpenCV程式,將彩色照片快速生成黑白輪廓線條圖案。
開發平台:
Windows 11, Python 3.9.10, OpenCV-Python 4.9.0, Visual Studio Code
Demo 影片:
影片當中所使用的照片
輸入檔名,讀取img資料夾內的指定圖片檔,並可以由設定介面更改相關參數,調整出符合需求的輪廓圖。
其中能調整的參數有:
- Inverse: 圖片是否黑白反轉,預設為黑底白線。
- Kernel Size: 圖片在進行高斯模糊處理時所使用Kernel的大小,僅能為奇數。
- Low Threshold: 使用cv2.Canny函數邊緣檢測之低閾值。
- High Threshold: 使用cv2.Canny函數邊緣檢測之高閾值。
cv2.Canny函數使用的演算法由澳洲計算機科學家約翰·坎尼(John F. Canny)於1986年開發出來的一個多級邊緣檢測算法。首先檢測高閾值以上的強邊緣(強梯度)像素,並拒絕低於閾值的像素。接著,只要它們連接到強邊緣,就會包含值為low_threshold和high_threshold的像素。輸出邊緣是二進制圖像,其中白色像素描繪出檢測到之邊緣,而其他地方則為黑色。(參考:Day3-當自動駕駛遇見AI-Canny邊緣檢測(Canny edge detection))
主要使用於圖像處裡的函數有:
- GaussianBlur: 將圖片模糊處理
- Canny: 計算邊緣
- threshold: 按照計算結果以及參數調整圖片
以下為作業提供之圖片成果展示:
可以看到上圖設定視窗介面上有能調整參數的地方,有四項參數。
將Low Threshold調整成100,High Threshold調整為200。
關閉視窗後,自動存成edge.jpg,成果如上圖。
將Low Threshold調整成80,High Threshold調整為240。
關閉視窗後,自動存成edge.jpg,成果如上圖。
黑白反轉,並將Kernel Size設為 3,Low Threshold調整成30,High Threshold調整為150。
關閉視窗後,自動存成edge.jpg,成果如上圖。
黑白反轉,並將Kernel Size設為 1,Low Threshold調整成82,High Threshold調整為246。
關閉視窗後,自動存成edge.jpg,成果如上圖。
留言
張貼留言