在计算机领域中,灰度(Gray scale)数字图像是每个像素只有一个采样颜色的图像。这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。用于显示的灰度图像通常用每个采样像素8 bits的非线性尺度来保存,这样可以有256种灰度(8bits就是2的8次方=256)。这种精度刚刚能够避免可见的条带失真,并且非常易于编程。灰度图像是一种具有从黑到白256级灰度色阶或等级的单色图像。该图像中的每个像素用8位数据表示,因此像素点值介于黑白间的256种灰度中的一种。该图像只有灰度等级,而没有颜色的变化。
灰度变换是基于点操作的增强方法,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,它能增强图像,扩展图像对比度,使图像变清晰,使其特征更突出。灰度非线性变换, 灰度非线性变换是指将灰度数据按照经验数据或某种算术非线性关系进行变换后再显示,灰度变换是基于点操作的增强方法,它将每一个像素的灰度值按照一定的数学变换公式转换为一个新的灰度值,如增强处理中的对比度增强。
对数变换对图像的低亮度区有较大的扩展而对高亮度区压缩,简言之就是增强了低值灰度的图像细节,灰度非线性变换,公式如下:
dst=C*log(1+src)
左边的是经过非线性变换操作的图
import cv2 import numpy as np fn="test3.jpg" myimg=cv2.imread(fn) img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY) jg_img=np.array(40*np.log(img+1),np.uint8) cv2.imshow(‘src‘,img) cv2.imshow(‘dst‘,jg_img) cv2.waitKey() cv2.destroyAllWindows()
数学之路-python计算实战(11)-机器视觉-图像增强,布布扣,bubuko.com
原文:http://blog.csdn.net/myhaspl/article/details/37766163