2022年2月23日 星期三

s1073522 作業 1

 一、 作業說明

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

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


二、 開發環境

  • Windows 11
  • Visual Studio 2017
  • OpenCV - 4.5.5


三、 實作方法

  1. 利用 imread 讀取圖片,並要求使用者輸入欲改變的值。
  2. 利用迴圈確認圖片每一個pixel的RGB是否皆相等。
  3. 若皆相等,代表該圖片為灰階圖像,利用cvtColor將圖片轉成灰階圖像。
  4. 將圖片傳到函式 change_pic,使用 channels() 判斷圖片為灰階圖像或全彩圖像,並加以調整。
  5. 同時輸出原本的照片以及調整後的照片。


四、 程式使用方法

  1. 輸入要修改的圖片檔名
  2. 輸入修改值

五、 執行結果

灰階圖像(+150):

(原圖/輸出)
灰階圖像(-150):

(原圖/輸出)

全彩圖像(+150):


(原圖/輸出)

全彩圖像(-150):

(原圖/輸出)



沒有留言:

張貼留言