2019年4月3日 星期三

s1053336 的作業 2

一、作業說明:
撰寫一個程式,讀取一張256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可) ,利用Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片 由 RGB 轉換至HIS 或 YUV, YCbCr 等色彩空間,只需對亮度 Channel I 或 Y 處理,再 轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到 的點,結合成線條方式呈現更佳!)

二、實作環境:window、python3、opencv、PyQt5、Numpy

三、實作方法:

  •         將圖片平滑處理(GaussianBlur),以減少雜訊
  • 圖片的色彩空間轉成YCrCb
  • 對channel Y進行Sobel,得到sobelX、sobelY
  • 將sobelX、sobelY轉成以CV_8的型態表示
  • sobelX、sobelY進行組合,得到新的channel Y
  • 新的channel Y代入原圖
  • 將結果圖的色彩空間轉成BGR,再轉成GRAY,即可得到類似素描線條的圖

    嘗試分析邊緣偵測所得到的點,結合成線條方式呈現
    • 將類似素描線條的圖進行二值化(threshold)
    • 利用二質化後的圖,得到contour(findContours)
    • 將contour畫於全黑的圖上(drawContours),並轉為灰階得到最後結果
    四、執行結果:

    • 初始介面



    • 按下Load選擇圖片



    • 圖片結果展示(img1為利用Sobel偵測圖像邊緣;img2為嘗試以利用分析邊緣偵測所得到的點,結合成線條方式呈現)



    • 按下Save1選擇儲存img1;按下Save2選擇儲存img2



    • 儲存結果

    沒有留言:

    張貼留言