主題 : 線條自畫像
題目:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,
如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基
礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成
線條方式呈現更佳!)
開發環境:
Window 10
Anaconda
VScode
Python
運行說明:
開始執行後輸入圖片的絕對位置,由於路徑可能有中文的情況,所以使用 cv2.imdecode 來讀取彩色圖片,接著使用 cv2.cvtColor 來將彩色圖片轉換為灰階圖片(第一個參數為要改變的圖片;第二是轉變的方式,而彩色轉灰階使用的是 cv2.COLOR_BGR2GRAY)。接著使用 Sobel 函數分別對X、Y方向來計算梯度,再將計算完的結果利用 cv2.bitwise_or 進行合併(參數為合併的兩個圖片,此函數為圖片的 OR)。最後使用 255 減去每一個像素之數值來達到反白的效果。
執行畫面:
原圖:
轉換為灰階後:
計算X方向梯度:
計算Y方向梯度:
X、Y梯度合併:
合併後反白:
沒有留言:
張貼留言