2022年2月22日 星期二

s1083335作業1

 一、作業說明

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

 

彩色圖像 

β= -100

原圖

β=100

 




 

 

沒有留言:

張貼留言