一、作業要求:
邊緣偵測與製作線條自畫像 Edge Detection Contour Drawing
撰寫一個程式,讀取一張256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I或Y處理,再轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
二、使用環境/語言:
邊緣偵測與製作線條自畫像 Edge Detection Contour Drawing
撰寫一個程式,讀取一張256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I或Y處理,再轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
二、使用環境/語言:
- Windows10
- Visual Studio 2015
- Opencv-3.4.1
- C++
三、特殊程式片段註解:
- Sobel():分別對影像進行水平及垂直的運算,並得到X軸和Y軸的一階梯度
- GaussianBlur():對圖片模糊處理,以減少雜訊
- convertScaleAbs():將圖片轉成CV_8U
- addWeighted():將X軸和Y軸的圖片分配權重,結合在一起
- threshold():將結合好的圖片,進行二值化
四、執行方式/畫面:
<原圖、Sobel()和GaussianBlur()處理後的圖、二值化處理後的圖>
五、參考資料:
- http://monkeycoding.com/?p=600
- http://monkeycoding.com/?p=632
沒有留言:
張貼留言