作業說明:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,
如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基
礎,設計一個類似素描線條自畫像程式
開發環境:
- Windows 10
- Visual Studio Code
- Python 3.8.5
- OpenCV 4.4.0
實作:
- 讀取全彩圖像
- 將圖像轉灰階
- 使用Sobel()對x、y方向求導,而Sobel()求完的值無法用uint8表示,因此要使用cv2.CV_16S資料型別儲存圖像
- 使用convertScaleAbs()將處理後的圖像轉回原來的uint8形式
- 使用addWeighted()將兩個方向的圖像組合起來,會得到黑底白線條的圖像
- 讓像素<100的點變為0,使圖像更清晰
- 每個像素的值做 255-原值 的運算,得到白底黑線條的圖像
執行結果:
原圖:
沒有留言:
張貼留言