2022年3月5日 星期六

s1081528 作業2

 

作業說明

撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖(RGB),則只改變每個像素的R值。

注意修改後像素值溢位Overflow問題(像素值介於0與255之間)。

開發環境

  • Windows 10
  • Visual Studio Code
  • Anaconda 4.11.0
  • OpenCV 4.5.5

程式說明

  1. 使用imread來讀取圖像。
  2. 利用遮罩(mask)來將圖像分別處理,中心內切圓部分挖空,以及保留中心內切圓部分,如下圖所示。
    中心內切圓部分挖空

    保留中心內切圓部分

  3. 旋轉的部分,分為(a)整張圖像,以及(b)中心內切圓區域
          (a) 整張圖像
                ①利用trackbar來調整圖像角度數值
                ②接著用getRotationMatrix2D及warpAffine來控制旋轉
                ③最後以imshow來顯示trackbar與圖像
          (b) 中心內切圓區域
                ①利用trackbar來調整保留中心內切圓圖像角度數值
                ②接著用getRotationMatrix2D及warpAffine來控制其旋轉
                ③再來需要將中心內切圓部分挖空的圖像及保留中心內切圓的圖像做合併
                ④最後以imshow來顯示trackbar與合併後的圖像

實作結果

(a)整張圖像

(b)中心內切圓區域

沒有留言:

張貼留言