- 作業說明
撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。
- 開發環境
Windows 10
Visual Studio 2017
OpenCV - 4.5.0
- 實作方式
1) 用imread讀入圖片,再用迴圈讀取圖片的每一個像素值做判斷。
2) 每個像素值分別由B、G和R組成,如果他們分別相等,則為黑白圖片,分別將每個值加上B、G和R值加上一個數。若不相等就是彩色圖片,只要改變R的值。
3) 將原本檔案的值一一改過後,就有一組新的值,儲存起來可以輸出一個新的圖片。
4) 加減的過程中遇到溢位問題時,可以用saturate_cast將運算後的數值控制在0~255之間,如果小於0就會是 0,如果大於255就存成255。
- 結果輸出
彩色圖片
黑白圖片
沒有留言:
張貼留言