圖像亮度調整
撰寫一個程式從檔案讀取一張圖像,將圖像的每一個點像素的值各加上一個整數值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無法正確運行。
- 在Anaconda cloud server中搜尋要安裝的package
在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"
六、參考資料:
- https://zhuanlan.zhihu.com/p/44813768
- https://blog.gtwang.org/programming/opencv-basic-image-read-and-write-tutorial/
沒有留言:
張貼留言