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,成果如上圖。


留言

這個網誌中的熱門文章

rzwang Homework #1

s1093350 Homework #2

s1061637 作業6