代码
import numpy as np import cv2 import matplotlib.pyplot as plt # 定义限行灰度变化函数 # k>1时实现灰度数值的拉伸 # 0255] = 255 trans_table[trans_table < 0] = 0 trans_table = np.round(trans_table).astype(np.uint8) # 使用OpenCV的look up table函数修改图像的灰度值 return cv2.LUT(img, trans_table) if __name__ == '__main__': im = cv2.imread('data/lena.jpg', 0) cv2.imshow('im', im) # 反转 im_inversion = liner_trans(im, -1, 255) cv2.imshow("inversion", im_inversion) # 灰度压缩 im_compress = liner_trans(im, 0.5) cv2.imshow('im_compress', im_compress) # 灰度拉伸 im_stretch = liner_trans(im, 1.2) cv2.imshow('grayStretch', im_stretch) cv2.waitKey() cv2.destroyAllWindows()
实现效果



