#coding:utf-8
'''
灰度拉伸
定义:灰度拉伸,也称对比度拉伸,是一种简单的线性点运算。作用:扩展图像的
直方图,使其充满整个灰度等级范围内
公式:
g(x,y) = 255 / (B - A) * [f(x,y) - A],
其中,A = min[f(x,y)],最小灰度级;B = max[f(x,y)],最大灰度级;
f(x,y)为输入图像,g(x,y)为输出图像
缺点:如果灰度图像中最小值A=0,最大值B=255,则图像没有什么改变
'''
import cv2
import numpy as np
def grey_scale(image):
img_gray = cv2.cvtColor(image,cv2.COLOR_RGB2GRAY)
rows,cols = img_gray.shape
flat_gray = img_gray.reshape((cols * rows,)).tolist()
A = min(flat_gray)
B = max(flat_gray)
print('A = %d,B = %d' %(A,B))
output = np.uint8(255 / (B - A) * (img_gray - A) + 0.5)
return output
src = cv2.imread('datas/f4.jpg')
result = grey_scale(src)
cv2.imshow('src',cv2.cvtColor(src,cv2.COLOR_BGR2GRAY))
cv2.imshow('result',result)
cv2.waitKey()
cv2.destroyAllWindows()
来源:oschina
链接:https://my.oschina.net/u/106657/blog/1797984