代码语言:javascript复制
import cv2
import numpy as np
import matplotlib.pyplot as plt
img=cv2.imread("C:/Users/xpp/Desktop/Lena.png")
grayImage=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
height,width=grayImage.shape[:2]
result=np.zeros((height,width),np.uint8)
#图像灰度上移变换
for i in range(height):
for j in range(width):
if int(grayImage[i,j]*0.8 50)>255:
gray=255
else:
gray=grayImage[i,j]*0.8 50
result[i,j]=np.uint8(gray)
cv2.imshow("original",grayImage)
cv2.imshow("result",result)
if cv2.waitKey()==27:
cv2.destroyAllWindows()
算法:图像对比度减弱变换是通过改变图像像元的亮度值来改变图像像元的对比度,从而改善图像质量的图像处理方法。图像灰度线性变换是通过建立灰度映射来调整原始图像灰度,从而改善图像的质量,凸显图像细节,提高图像对比度。灰度线性变换公式如下:
DB=f(DA)=αDA b
其中,DB表示灰度线性变换后的灰度值,DA表示变换前输入图像的灰度值,α和b为线性变换方程f(D)的参数,分别表示斜率和截距。
- 当α=1,b=0时,保持原始图像
- 当α=1,b!=0时,图像所有的灰度值上移或下移
- 当α=-1,b=255时,原始图像的灰度值反转
- 当α>1时,输出图像的对比度增强
- 当0<α<1时,输出图像的对比度减小
- 当α<0时,原始图像暗区域变亮,亮区域变暗,图像求补
链接:https://github.com/eastmountyxz/ImageProcessing-Python