一、作業說明
撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變每個像素的 R 值。修改後像素值介於 0 與 255 之間。
二、開發環境
Windows11
Visual Studio 2019
OpenCV4.0.1
三、實作方法
1.設定圖片路徑,利用imread()讀取圖片,並檢查是否讀取成功。
2. 利用img.at<Vec3b>(i, j)[0]讀入圖片之R,B,G數值,如果三數值相等則為灰階圖片,否則為彩色。
3.若是灰階圖像,則增加灰階圖像每個像素的值,再將原圖像和灰階圖像印出。
4.若是彩色圖像,則增加彩色圖像中R的值,再將原圖像和彩色圖像印出。
5.上述兩點使用下列公式:新圖像=α*原圖像+β 改變像素值,且利用saturate_cast<uchar>()處理溢位問題。當underflow,數值設為最小值0;當overflow,數值設為最大值255。
6.接著輸出原圖及調整後圖片。
四、執行結果
彩色圖像
β= -100
原圖
β=100
沒有留言:
張貼留言