一、 題目
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp
或.jpg 圖像格式都可) ,利用 Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片
由 RGB 轉換至 HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I 或 Y 處理,再 轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到 的點,結合成線條方式呈現更佳!)
二、 環境
1.
Windows 10
2.
Python 3.7.1
3.
Opencv 3.4.5
三、 實作
1. 輸入當前路徑下指定圖片的名稱 (ex. Input.jpg)
2. 使用cv2.imread() 讀取圖片,其名為s1051424_img.jpg並使用cv2.imshow()顯示原圖
3. 使用cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 專為灰階圖並使用cv2.imshow()秀出此圖
4.
cv2.Sobel(image,cv2.CV_16S,1,0)和cv2.Sobel(image,cv2.CV_16S,0,1)轉出圖片在x軸和y軸的16位元數據以防因有負數導致建立圖像时長度不够
5.
cv2.convertScaleAbs(sobelX)取絕對值轉回uint8形式顯示圖片
6.
使用cv2.imshow()秀出結果圖並使用cv2.imwrite() 存取改變後的圖片,命名為s1051424_output.jpg
四、
執行
1.
終端機到檔案所在路徑
2.
python s1051424_hw2.py
3.
輸入當前路徑下指定圖片的名稱 (ex. Input.jpg)
4.
結果
五、
結果
Origin
Grayscale
Edge Detection and Contour Drawing
沒有留言:
張貼留言