在计算机领域中,灰度(Gray scale)数字图像是每一个像素仅仅有一个採样颜色的图像。

这类图像通常显示为从最暗黑色到最亮的白色的灰度,虽然理论上这个採样能够不论什么颜色的不同深浅。甚至能够是不同亮度上的不同颜色。灰度图像与黑白图像不同,在计算机图像领域中黑白图像仅仅有黑白两种颜色。灰度图像在黑色与白色之间还有很多级的颜色深度。

用于显示的灰度图像通经常使用每一个採样像素8 bits的非线性尺度来保存。这样能够有256种灰度(8bits就是2的8次方=256)。

这样的精度刚刚能够避免可见的条带失真。而且很易于编程。灰度图像是一种具有从黑到白256级灰度色阶或等级的单色图像。

该图像中的每一个像素用8位数据表示,因此像素点值介于黑白间的256种灰度中的一种。该图像仅仅有灰度等级,而没有颜色的变化。

灰度变换是基于点操作的增强方法。它将每一个像素的灰度值依照一定的数学变换公式转换为一个新的灰度值。它能增强图像。扩展图像对照度,使图像变清晰,使其特征更突出。





灰度非线性变换。  灰度非线性变换是指将灰度数据依照经验数据或某种算术非线性关系进行变换后再显示,灰度变换是基于点操作的增强方法,它将每一个像素的灰度值依照一定的数学变换公式转换为一个新的灰度值。如增强处理中的对照度增强。




对数变换对图像的低亮度区有较大的扩展而对高亮度区压缩,简言之就是增强了低值灰度的图像细节。灰度非线性变换。公式例如以下:

dst=C*log(1+src)

数学之路-python计算实战(11)-机器视觉-图像增强_灰度变换

左边的是经过非线性变换操作的图


本博客全部内容是原创,假设转载请注明来源

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()