s1081523 作業1
作業說明:
撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。
如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變每個像素的 R 值。
注意修改後像數值溢位Overflow 問題(像素值介於 0 與 255 之間)。
開發環境:
·
Windows 10
·
Visual Studio 2019
·
OpenCV 4.5.5
·
C++
實作過程:
1. 放入對應圖片的完整路徑,並用imread()讀取圖像。
2. 根據每一個像素的b、g、r值判斷是灰階或全彩圖像(灰階圖的bgr值相等)。
3. 點擊執行視窗進行輸入(注意若視窗沒有跑出提醒輸入的提示,先按一下enter)
4. 使用者輸入改變值 (灰階圖像改亮度、全彩圖像改r值,並且做簡單防呆)。因為有用saturate_cast轉換所以不會發生溢位問題。
5. 結束程式,關閉圖片顯示視窗。
執行結果:
灰階圖亮度+100 (右側為原圖,左側為輸出視窗)
灰階圖亮度-100 (右側為原圖,左側為輸出視窗)
沒有留言:
張貼留言