2022年2月24日 星期四

s1083334 作業 1

 - 作業說明

        撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(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。

結果輸出

彩色圖片


黑白圖片





沒有留言:

張貼留言