2019年4月1日 星期一

1051511的作業2

一、作業要求:

邊緣偵測與製作線條自畫像 Edge Detection Contour Drawing撰寫一個程式,讀取一張256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可,利用Sobel Operators 偵測圖像邊緣,並以邊緣偵測為基礎(如彩色圖像針可先將圖片  RGB 轉換至HIS  YUV, YCbCr 等色彩空間,只需對亮度 Channel IY處理,再轉回 RGB 即可),設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
二、使用的環境:
  • Windows10
  • Python3.6
  • Opencv-3.4
  • Pyqt 5
三、特殊程式片段說明:
    
    我給於使用者兩種方式來寫邊緣偵測分別是Sobel以及Scharr,讓使用者觀看哪種邊緣偵測是他們所需要的

    Sobel的部分:
  • 使用cv2.GaussianBlur()--->以減少雜訊
  • 使用Sobel()--->分別水平及垂直的運算
  • 使用convertScaleAbs()--->將圖片轉成CV_8U的型態
  • 使用addWeighted()--->垂直軸水平軸的圖片分配權重,並結合在一起
  Scharr的部分:
  • 使用cv2.GaussianBlur()--->以減少雜訊
  • 使用Scharr()--->分別水平及垂直的運算]
  • 使用convertScaleAbs()--->將圖片轉成CV_8U的型態
  • 使用addWeighted()--->垂直軸水平軸的圖片分配權重,並結合在一起

    兩者的差別主要在於運算用的核不同,在測試的情況下Scharr效果較好

四、執行方式:

      以Load鍵選取想要調整的圖片,並選取上方的radiobox選擇想要的邊緣偵測方式,再按下Save進行存檔。

五、執行結果:

  • 初始介面          


  • Load 圖片(彩圖)


  • 選擇Sobel

  • 選擇Scharr

  • 分別save圖片



  • Load 圖片(灰階圖)


  • 選擇Sobel


  • 選擇Scharr


  • 分別save圖片




沒有留言:

張貼留言