2019年3月30日 星期六

s1043325 的作業 2

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

環境與使用套件版本

  • Windows 10
  • Python 3.7.1
    • opencv-python 4.0.0.21
    • PyQt5 5.12 

實作方法 

  1. 使用 cv2.GaussianBlur() 將圖片模糊處理,以減少雜訊
  2. 使用 cv2.Sobel() 取得 x 軸與 y 軸的梯度
  3. 使用 cv2.convertScaleAbs() 將上面取得的梯度轉回 unit8
  4. 使用 cv2.addWeighted() 將 x, y 兩個維度的圖片分配權重,並組合再一起

使用方法

Step1. 運行程式

 

Step2. 點擊 Load 按鈕,選擇想要的圖片

Step3. 修改後的圖像會顯示在右側

 

Step4. 點擊 Save 按鈕,自由選擇欲存放的檔案路徑與檔名

原圖
輸出

沒有留言:

張貼留言