为了得到更加清晰的图像我们需要通过技术对图像进行处理,比如使用对比度增强的方法来处理图像,对比度增强就是对图像输出的灰度级放大到指定的程度,获得图像质量的提升。本文通过线性变换,实现图片加强。
线性变换的公式为:
O(r,c)=a∗I(r,c)+b,0≤r<R0≤c<W
图像的线性变换无疑就是利用矩阵的乘法就行线性变换,比如一个矩阵I ,2I,3I (np.unt8 ndarry类型就是unt8类型)就是一个矩阵的变换.
代码如下所示:
import cv2
import numpy as np
import sys
img = cv2.imread("D://python/p1.jpg",cv2.IMREAD_GRAYSCALE)#读取图片,需将引号内容改成自己的图片位置
print(img)#打印img,发现图像是一个矩阵,如图1所示
a=2
O = float(a)*img#对img做出线性变换,二倍放大
O[0>255] = 255#超出255,直接转换为255
O = np.round(O)
O = O.astype(np.uint8)
cv2.imshow("img",img)#打印原图,如图2
cv2.imshow('enhance',O)#增强后的图片,如图3
cv2.waitKey(0)
cv2.destroyAllWindows()
对比图2和图3,图3图片的对比更加清晰。黑白对比更加强烈。
|