s1091447 作業2
主題: 線條自畫像(二值化與邊緣偵測 Image Thresholding and Edge Detection)
作業說明 :
撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)
(a)利用 Sobel Operators 偵測並輸出邊緣成分圖
(b)設計一個類似素描線條的自畫像圖案。(想想:如何使用邊緣偵測所得到的點,結合成看似素描筆畫出的線條?)
開發環境:
Windows 11+ Visual Studio 2022 + OpenCV 4.7.0
程式碼說明:
(a) edge
使用cv2.Sobel(圖片, 圖像深度, x方向, y方向, 卷積核),分別對水平方向和垂直方向的梯度進行計算,再使用cv2.addWeighted()進行加權,得到edge。
(b) sketch
首先創造一個和灰階圖案相同大小的但元素全部為0的矩陣,並且設定一個閾值,之後檢查edge的每一個pixel,若此值大於閾值則代表其為邊緣,因此對應到剛才的全0矩陣並去做修改,最後全0矩陣就會變成sketch,但由於目前是黑色背景白色線條,所以最後還要將圖片進行黑白反轉。
留言
張貼留言