s1083506 作業2
主題 線條自畫像 (二值化與邊緣偵測 Image Thresholding and Edge Detection)
撰寫一個程式,以灰階模式讀取一張圖像imread(path, IMREAD_GRAYSCALE) (a)利用 Sobel Operators偵測並輸出邊緣成分圖(b)設計一個類似素描線條的自畫像圖案。(想想:如何使用邊緣偵測所得到的點,結合成看似素描筆畫出的線條?)
實作方法
使用cv2.Sobel分別計算X軸與Y軸的梯度,經過多次的嘗試個人認為scale參數設成0.5較為理想,若數值太高雜訊則會太多,反之,數值太低呈現出的線條會太淡。再來,使用cv2.convertScaleAbs計算X軸與Y軸之梯度絕對值。最後,用cv2.addWeighted將兩者合併,alpha與beta皆設定為0.5,即可得到黑底白線的邊緣圖。因為,素描大多數都是白底黑線,所以,使用cv2.bitwise_not將黑白反轉,就會得到類似於素描的圖片。
執行解果
開發環境
OS:macOS Monterey 12.6.3
Editor:Visual Studio Code
Language:Python 3.8.16
Package:OpenCV 4.7.0
留言
張貼留言