灰度值 vs 像素值& 阈值化 vs 截断 vs 归一化 & python显示图像时的处理

本文介绍了图像处理中灰度值和像素值的区别,探讨了Python中PIL和OpenCV库的阈值处理方法,包括阈值化、截断、归一化和自适应阈值,并提到了cv2.imshow()和plt.show()在显示图像时对超出阈值的处理策略。
摘要由CSDN通过智能技术生成

记录在进行图像处理当中,常用到的灰度值、像素值区别以及常见图像处理方式

灰度值和像素值的区别

  • 像素值:在数字图像中,像素值通常指的是构成图像的最小单元的亮度或颜色值。在彩色图像中,每个像素值通常由红、绿、蓝(RGB)三个颜色通道的值组成,每个通道的取值范围通常是0-255(8位深)。因此,一个像素在彩色图像中可以表示约1670万种颜色(256 × 256 × 256)。

  • 灰度值:灰度值是指在灰度图像中每个像素的亮度值,通常也取值范围为0-255,其中0代表黑色,255代表白色,介于两者之间的值表示不同的灰度。灰度图像通常只包含亮度信息,不包含颜色信息。(一般认为灰度图的像素值指的是灰度值)

对应关系
  • 灰度图:使用灰度值来表示,每个像素只有一个灰度值,用于表示图像的明暗程度。
  • 彩色图:使用像素值来表示,每个像素包含RGB三个通道的值,用于表示颜色和亮度。

在Python图像处理中超出阈值的处理

在Python的图像处理中,常用的库如PIL(Python Imaging Library)或OpenCV,处理超出阈值的像素值时通常有几种方法:

  1. 阈值化(Thresholding):这是一种简单的形式,如果像素值超过某个阈值,它会被设置为最大值(通常是255,表示白色),如果低于阈值,它会被设置为最小值(通常是0,表示黑色)。这种方法常用于灰度图像的二值化(即将图像中的像素值设置为0或255的过程,这样处理后的图像只包含黑白两种颜色。二值化主要用于简化图像分析,便于后续的图像处理任务,如轮廓检测、特征提取等)。

  2. 截断(Clipping):对于超出特定范围的值,可以将它们截断到最大或最小值。例如,如果设置了0-255的范围,任何超出这个范围的值将被设为255或0。

  3. 归一化(Normalization):将图像的像素值重新缩放到一个指定的范围内,通常是0到255。这通常用于调整图像的对比度。
    NormalizedValue = Value − MinValue MaxValue − MinValue × ( NewMax − NewMin ) + NewMin \text{NormalizedValue} = \frac{\text{Value} - \text{MinValue}}{\text{MaxValue} - \text{MinValue}} \times (\text{NewMax} - \text{NewMin}) + \text{NewMin} NormalizedValue=MaxValueMinValueValueMinValue×(NewMaxNewMin)+NewMin

  4. 自适应阈值化:与简单阈值化不同,自适应阈值化会根据像素周围区域的亮度自动调整阈值。这对于光照不均匀的图像特别有用。自适应阈值化不是使用全局阈值,而是根据图像局部区域的像素值计算阈值。其数学原理基于局部区域的统计特性,如平均值或加权平均值,使得阈值可以根据局部像素值的分布动态调整。

cv2.imshow()或plt.show()显示图像时,对超出阈值处理方式

对于cv2.imshow():

  • 如果图像的数据类型是无符号8位整数(uint8),那么超出0-255范围的像素值将被自动截断到这个范围内。也就是说,小于0的值将变为0,大于255的值将变为255。
  • 如果图像的数据类型是浮点数(如float32或float64),cv2.imshow()会将像素值乘以255,然后转换为uint8类型。在此过程中,小于0的值将变为0,大于1的值将变为255。

对于plt.show():

  • 如果图像的数据类型是uint8,plt.imshow()会直接显示图像,不对超出范围的像素值进行任何特殊处理。
  • 如果图像的数据类型是浮点数,plt.imshow()会将像素值映射到0-1的范围内,然后应用颜色映射表(colormap)进行显示。默认情况下,小于0的值将显示为颜色映射表的最小值所对应的颜色,大于1的值将显示为颜色映射表的最大值所对应的颜色。

cv2.imshow()和plt.imshow()在显示图像时会对超出范围的像素值进行一定的处理,但这并不会改变原始图像数据,原始图像数据中的像素值仍然保持不变。

  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值