s1083520 作業2
1112 Digital Image Processing Assignment #2
主題: 線條自畫像 (二值化與邊緣偵測 Image Thresholding and Edge Detection)
題目敘述
撰寫一個程式,以灰階模式讀取一張圖像 imread(path, IMREAD_GRAYSCALE)
(a)利用Sobel Operators 偵測並輸出邊緣成分圖
(b)設計一個類似素描線條的自畫像圖案。
(想想:如何使用邊緣偵測所得到的點,結合成看似素描筆畫出的線條?)
開發環境
OS: Windows 10
Editor: Visual Studio Code
Compiler: GCC - 12.2.0(MinGW-W64)
Language: C++
Package: OpenCV - 4.7.0
Editor: Visual Studio Code
Compiler: GCC - 12.2.0(MinGW-W64)
Language: C++
Package: OpenCV - 4.7.0
實作方法
(a)
1. 先使用 Guassian Blur 過濾原圖像雜訊
2. 使用 Sobel 運算子對原圖像的x方向及y方向分別處理後得到gradient_x, gradient_y
3. 將兩個分量結合得到梯度G( sqrt(gradient_x^2 + gradient_y^2) ),
通常為了加快運算,會使用abs(gradient_x) + abs(gradient_y)求得G
4. 使用addWeighted將abs_gradient_x及abs_gradient_y給定權重求和得到最終結果
(b)
將(a)得到的edge map做bitwise_not
實作結果
(b) Sketch-like |
留言
張貼留言