图像处理(七)图像增强

图像增强的本职就是增加灰度级,也就是灰度值的范围,可以在灰度直方图中很明显的看到!通常增加灰度级的方法未img*a a>1对比度增加反之减少,img+b b>0亮度增加反之减少。
增加灰度级的函数:
1)伽马变换:伽马变换需要对灰度进行归一化 img/255
函数np.power(img/255,伽马系数0.4为例) 系数越大越暗,超过1时会比原图暗,越小越亮,进行伽马变换后系数太小暗区会出现噪声,噪声不多

2)全局直方均衡化:优点是对提高对比度很有效,但均衡化以后原暗区噪声会被放大,亮区可能会损失信息,暗区噪声明显比伽马变换要大,噪声较大
函数cv2.equalizeHist()

3)限值对比度的自适应直方图均衡化:对比全局直方均衡化的优点在于可以有效避免暗区的噪声放大。噪声可控 参数越大,噪声越大,越亮
函数clahe = cv2.createCLAHE(clipLimit=2.0,tileGridSize=(8,8))
阈值均衡化
result = clahe.apply(img)
直方图代码如下:

import numpy as np
import cv2
import matplotlib.pyplot as plt

image = cv2.imread('test.jpg',0)
hight,width = image.shape
gray_map = np.asarray([x for x in range(256)])

for i in range(hight):
	for j in range(width):
		gray_map[image[i,j]] += 1

print(gray_map)

x = range(256)
plt.plot(x,gray_map,'r',linewidth=2,c='black')
plt.show()

函数代码实现如下:

import numpy as np
import cv2
import matplotlib.pyplot as plt

image = cv2.imread('test1.jpg',0)

hight,width = image.shape

#伽马变换
#image = np.power(image/255,0.4)
#全局直方均衡化
#image = cv2.equalizeHist(image)

#限值对比度的自适应直方图均衡化
#clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
#image = clahe.apply(image)

for i in range(hight):
	for j in range(width):
		if image[i,j]<100:
			image[i,j] += 100

cv2.imshow('test',image)
cv2.waitKey(0)
cv2.destroyWindows()

你可能感兴趣的:(图像处理)