2022年2月22日 星期二

s1081542 作業1

作業說明:

  1. 撰寫一個程式讀取 1 張圖片,將圖像中每一個點像素的值各加上一個數值。
  2. 如果輸入圖像是灰階圖像,改變每個像素的灰階值。
  3. 如果輸入圖像是全彩圖像(RGB),則只改變每個像素的 R 值。
  4. 修改後的像素值仍然要介於 0 ~ 255 (注意!!數值不要溢位)
使用環境/語言:
  • Windows10
  • Visual Studio 2019
  • Opencv-4.3.0
  • C++

實作方法:

  1. 輸入圖片路徑後,會檢查是否可讀取到圖片內容,若不行,則重新輸入圖片路徑。
  2. 輸入欲增加的數值。
  3. 判斷輸入的圖片是屬於灰階圖像還是全彩圖像
  4. 若是灰階圖像,則利用輸入的數值,增加灰階圖像的每個像素的灰階值,再將原圖像灰階圖像印出。
  5. 若是全彩圖像(RGB),則利用輸入的數值,只增加全彩圖像每個像素的 R 值,再將原圖像全彩圖像印出。
  6. 印完圖像後,可讓使用者選擇是否要繼續輸入像素,觀察同張圖片不同像素的效果,若輸入^z,則回到第二點的流程
  7. 第一點的流程輸入0,則終止程式。

執行方式/畫面:

  • 輸入灰階圖:

    • 將每個像素的灰階值,加上100(像素變成255會變全白)。
    • 將每個像素的灰階值,減掉100(像素變成0會變全黑)。
  • 輸入全彩圖:

    • 將每個像素的R值,加上100。(輸入100)
    • 將每個像素的R值,減掉100。(輸入-100)
  • 影片:

參考資料:

沒有留言:

張貼留言