撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
二、作業環境&語言
Windows 10
Visual Studio Code 1.54.3
OpenCV 4.5.1.48
Python 3.8.3
三、實作方法
- imread讀取圖片
- 建一張白畫布畫輪廓用
- 用高斯平滑過濾過多細節及雜訊
- 用Sobel分別偵測x軸方向跟y軸方向的邊緣
- 轉換為unit8
- 將兩軸方向的偵測結果相加
- 用bitewise_not使黑白相反
- 使用Otsu二值化,不然findContours會找到很多不是輪廓的東西
- 用findContours找出輪廓再用drawContours畫出輪廓
四、執行結果
原圖:
Sobel:
drawContours:
沒有留言:
張貼留言