對比度增強,即將圖片的灰度范圍拉寬,如圖片灰度分布范圍在[50,150]之間,將其范圍拉升到[0,256]之間。這里介紹下 線性變換,直方圖正規(guī)化,伽馬變換,全局直方圖均衡化,限制對比度自適應直方圖均衡化等算法。
線性變換
通過函數(shù)y=ax+b對灰度值進行處理,例如對于過暗的圖片,其灰度分布在[0,100], 選擇a=2,b=10能將灰度范圍拉伸到[10, 210]??梢酝ㄟ^np或者opencv的convertScaleAbs()函數(shù)來實現(xiàn) 。
#coding:utf-8
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
from cv2 import convertScaleAbs
img = cv.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")
print(img)
img_bright = cv.convertScaleAbs(img,alpha=1.5,beta=0)
print(img_bright)
cv.imshow("img",img)
cv.imshow("img_bright",img_bright)
cv.waitKey(0)
cv.destroyAllWindows()
convertScaleAbs()
直方圖正規(guī)化
#coding:utf-8
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
img = cv.imread(r"C:\Users\mzd\Desktop\opencv\images.jpg")
img_norm=cv.normalize(img,dst=None,alpha=350,beta=10,norm_type=cv.NORM_MINMAX)
cv.imshow("img",img)
cv.imshow("img_norm",img_norm)
cv.waitKey(0)
cv.destroyAllWindows()
cv.normalize()
全局直方圖均衡化文章來源:http://www.zghlxwxcb.cn/news/detail-794112.html
#coding:utf-8
import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np
import math
img = cv.imread(r"C:\Users\Administrator\Desktop\dark.jpg",0)
img_equalize = cv.equalizeHist(img)
cv.imshow("img",img)
cv.imshow("img_equalize",img_equalize)
cv.waitKey(0)
cv.destroyAllWindows()
opencv equalizeHist()
文章來源地址http://www.zghlxwxcb.cn/news/detail-794112.html
到了這里,關(guān)于opencv-圖像對比度增強的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!