2022年2月24日 星期四

s1081408 作業1


  • 開發環境:
    1. Windows 10
    2.  OpenCV 4.5.5
    3. Visual Studio 2022
    4. 語言:C++

  • 作業說明
    1. 輸入圖片的路徑後讀取圖片。
    2. 把圖片每個點像素的值加上使用者輸入的數值。
    3.  圖像分成兩種:
      • 灰階:改變每個像素的灰階值。
      • 全彩:只改變每個像素的R值。
    4. 必須注意加減值後像素值可能會超出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
                            
  • 執行過程影片:

沒有留言:

張貼留言