2022年2月23日 星期三

s1081523 作業1

 

s1081523 作業1

作業說明:

撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。

如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變每個像素的 R 值。 
注意修改後像數值溢位Overflow 問題(像素值介於 0  255 之間) 

 

開發環境: 

·     Windows 10

·     Visual Studio 2019

·     OpenCV 4.5.5

·     C++

 

實作過程:

1. 放入對應圖片的完整路徑,並用imread()讀取圖像。

2. 根據每一個像素的bgr值判斷是灰階或全彩圖像(灰階圖的bgr值相等)

3. 點擊執行視窗進行輸入(注意若視窗沒有跑出提醒輸入的提示,先按一下enter) 
4. 使用者輸入改變值 (灰階圖像改亮度、全彩圖像改r值,並且做簡單防呆)。因為有用saturate_cast轉換所以不會發生溢位問題。

5. 結束程式,關閉圖片顯示視窗。

執行結果:

                灰階圖亮度+100 (右側為原圖,左側為輸出視窗)






                灰階圖亮度-100 (右側為原圖,左側為輸出視窗)






                全彩圖r值+125 (右側為原圖,左側為輸出視窗)





                 全彩圖r值+125 (右側為原圖,左側為輸出視窗)






沒有留言:

張貼留言