- 開發環境:
- Windows 10
- OpenCV 4.5.5
- Visual Studio 2022
- 語言:C++
- 作業說明:
- 輸入圖片的路徑後讀取圖片。
- 把圖片每個點像素的值加上使用者輸入的數值。
- 圖像分成兩種:
- 灰階:改變每個像素的灰階值。
- 全彩:只改變每個像素的R值。
- 必須注意加減值後像素值可能會超出0-255的範圍。
- 程式功能:
- 讀取圖片:輸入圖片路徑後,若路徑存在使用imread()把圖片讀進來,若路徑不存在則提示使用者並結束程式。
- 判斷輸入圖片為RGB或灰階圖片:
- 獲取像素值:img.at<Vec3b>(i,j)[k]
- 若為灰階圖片則每個像素的BGR值皆會相同,若像素裡的BGR channel值不相同的話則為RGB圖像。
- 對原始圖片進行操作:
- RGB圖片:只改變R channel值,因此輸入值為正時圖片變紅,為負時圖片偏綠。
- 灰階圖片:改變BGR值,因此輸入值為正時圖片變亮,為負時圖片偏暗。
- 使用saturate_cast<uchar>()防止修改後的像素值可能會有超出0-255範圍的問題。
- imshow()顯示原圖和操作後結果,waitKey()等待使用者按任意鍵後關閉視窗。
- 執行結果:
- RGB圖片:
- -100:
- +100:
- 灰階圖片:
- -100:
- +100:
- 執行過程影片:
沒有留言:
張貼留言