2022年2月23日 星期三

s1080741 作業1

1.題目說明

撰寫一個程式讀取ㄧ張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入 圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。 注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。 

2.使用環境

windows 10
Visual Studio 2022
Opencv 4.5.4
C++

3.實作說明

1.輸入欲改變的值 value。

2.  輸入圖片路徑並且判斷有沒有這一張圖片,沒有的話輸出Image not exist. 程式結束。

3. 用函式(iscolorful)判斷輸入圖片是彩色圖還是灰階圖,利用灰階圖的RGB數值都是一樣的特性來判斷。

4.若為灰階圖則改片圖片亮度,修改圖片RGB的素質並且保持同一個像素的數值R=G=B,依照前面輸入的value來修改並且用max函式讓RGB值在0~255之間,過大則用255代替,過小用0代替。

5.彩色照片只修改R的數值其餘不動,修改方式跟灰階圖片一樣讓R值在0~255之間,過大則用255代替,過小用0代替。

4.實作結果


step1 + step2 
路徑錯誤的情況




判斷是否為有色照片




step3 + step4 
處理灰階照片




左邊為條亮80(value=-80) 中間為原圖 右邊為條暗80(value = 80)




step3 + step5
處理彩色照片 左邊為R值-100 中間為原圖 右邊為R值+100













沒有留言:

張貼留言