一、作業題目:
撰寫一個程式,讀取一張256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I 或 Y 處理,再 轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到 的點,結合成線條方式呈現更佳!)
二、執行環境:
windows 10 , opencv-4.0 , Spyder(Python-3.7)。
三、程式撰寫:
一開始先請你輸入要開啟的檔名,若檔名錯誤會叫你重新輸入,檔名對了就用imread開啟圖檔(使用方法為在此資料夾找符合的檔案),之後使用Sobel()函數得到x和y(即是垂直和水平)的一階梯度,在來使用convertScaleAbs()函數將其轉回原來的uint8形式,再來使用addWeighted()把垂直和水平的合在一張圖上,就為我們要的素描圖,再利用imwrite()存成一個output.jpg檔。
四、程式展現:
(一)
輸入錯誤:
輸入正確則跑出圖檔:
(二)
輸出素描檔:
(三)
存成output.jpg:
沒有留言:
張貼留言