2019年3月18日 星期一

s1053315 作業一

一、作業要求:

圖像亮度調整
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值v (-255 < v < 255),並將圖像儲存至一個新圖像檔案中。

二、使用環境/語言:

  • Windows 10
  • Spyder ( Python3.5 )
  • Python
  • Opencv 3.4.1
三、特殊程式片段註解:
  • 用np.clip()函數將數據限定來防止計算出來的圖像像素值溢出
  • 使用createTrackbar來創造滑桿

  • lst = 1*img[i, j] + bnum  , 以bnum來做為調整亮度的數值,前面的1為調整對比度
  • 使用np.hstack((img, cimg))來合併圖片以便對比
  • 使用imread讀取圖片,imwrite存取圖片


四、環境設置介紹:
       首先下載 Anaconda 後將其路徑加入到path,以免python無法正確運行。

在cmd中輸入: anaconda search opencv

      挑選一個覺得順眼以及符合系統需求的package
輸入:conda install -c https://conda.anaconda.org/package名稱
下載完畢開啟Spyder即可

五、執行結果:


亮度調整是將圖像像素的強度整體變大/變小,對比度調整指的是圖像暗處的像素強度變低,亮出的變高,從而拓寬某個區域內的顯示精度。


OpenCV中亮度和對比度應用這個公式來計算:g(x) = αf(x) + β,其中:α(>0)、β常稱為增益與偏置值,分別控製圖片的對比度和亮度。

當亮度增加設為0時,與原圖無異


當亮度增加設為86時

當亮度增加設為128時


當亮度增加設為-128時


使用imwrite存取圖片為"OUTPUT"


六、參考資料:

  1. https://zhuanlan.zhihu.com/p/44813768
  2. https://blog.gtwang.org/programming/opencv-basic-image-read-and-write-tutorial/


沒有留言:

張貼留言