失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【python图像处理】图像灰度化处理 图像灰度线性变换 图像灰度非线性变换

【python图像处理】图像灰度化处理 图像灰度线性变换 图像灰度非线性变换

时间:2019-06-19 17:20:22

相关推荐

【python图像处理】图像灰度化处理 图像灰度线性变换 图像灰度非线性变换

一、图像灰度化处理1、最大值灰度处理方法2、平均灰度处理方法3、加权平均灰度处理方法二、图像灰度线性变换1、图像灰度上移变换2、图像对比度增强变换3、图像对比度减弱变换4、图像灰度反色变换三、图像灰度非线性变换1、图像灰度非线性变换:2、对数变换3、伽玛变换

一、图像灰度化处理

1、最大值灰度处理方法

该方法的灰度值等于彩色图像R、G、B三个分量中的最大值

for i in range(height):for j in range(width):#获取图像R G B最大值gray = max(img[i,j][0], img[i,j][1], img[i,j][2])#灰度图像素赋值 gray=max(R,G,B)grayimg[i,j] = np.uint8(gray)

2、平均灰度处理方法

for i in range(height):for j in range(width):#灰度值为RGB三个分量的平均值gray = (int(img[i,j][0]) + int(img[i,j][1]) + int(img[i,j][2])) / 3grayimg[i,j] = np.uint8(gray)

3、加权平均灰度处理方法

for i in range(height):for j in range(width):#灰度加权平均法gray = 0.30 * img[i,j][0] + 0.59 * img[i,j][1] + 0.11 * img[i,j][2]grayimg[i,j] = np.uint8(gray)

二、图像灰度线性变换

图像的灰度线性变换是通过建立灰度映射来调整原始图像的灰度,从而改善图像的质量,凸显图像的细节,提高图像的对比度。

该公式中DB表示灰度线性变换后的灰度值,DA表示变换前输入图像的灰度值,α和b为线性变换方程f(D)的参数,分别表示斜率和截距。

当α=1,b=0时,保持原始图像

当α=1,b!=0时,图像所有的灰度值上移或下移

当α=-1,b=255时,原始图像的灰度值反转

当α>1时,输出图像的对比度增强

当0<α<1时,输出图像的对比度减小

当α<0时,原始图像暗区域变亮,亮区域变暗,图像求补

1、图像灰度上移变换

for i in range(height):for j in range(width):if (int(grayImage[i,j]+50) > 255):gray = 255else:gray = int(grayImage[i,j]+50)result[i,j] = np.uint8(gray)

图像的所有灰度值上移50,图像变得更白了。注意,纯黑色对应的灰度值为0,纯白色对应的灰度值为255。

2、图像对比度增强变换

for i in range(height):for j in range(width):if (int(grayImage[i,j]*1.5) > 255):gray = 255else:gray = int(grayImage[i,j]*1.5)result[i,j] = np.uint8(gray)

图像的所有灰度值增强1.5倍。

3、图像对比度减弱变换

for i in range(height):for j in range(width):gray = int(grayImage[i,j]*0.8)result[i,j] = np.uint8(gray)

图像的所有灰度值减弱,图像变得更暗。

4、图像灰度反色变换

for i in range(height):for j in range(width):gray = 255 - grayImage[i,j]result[i,j] = np.uint8(gray)

图像处理前后的灰度值是互补的。

三、图像灰度非线性变换

1、图像灰度非线性变换:

DB=DA×DA/255

for i in range(height):for j in range(width):gray = int(grayImage[i,j])*int(grayImage[i,j]) / 255result[i,j] = np.uint8(gray)

2、对数变换

其中c为尺度比较常数,DA为原始图像灰度值,DB为变换后的目标灰度值。

def log(c, img):output = c * np.log(1.0 + img)output = np.uint8(output + 0.5)return output

对数变换对于整体对比度偏低并且灰度值偏低的图像增强效果较好。

3、伽玛变换

当γ>1时,会拉伸图像中灰度级较高的区域,压缩灰度级较低的部分。

当γ<1时,会拉伸图像中灰度级较低的区域,压缩灰度级较高的部分。

当γ=1时,该灰度变换是线性的,此时通过线性方式改变原图像。

如果觉得《【python图像处理】图像灰度化处理 图像灰度线性变换 图像灰度非线性变换》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。