数字图像转换与噪声处理

一.图像空间转换

1.RGB颜色模型

RGB色彩空间由红色、绿色和蓝色三种基色确定,其他所有的颜色均可由三种基色通过不同比例组合产生。取值在0~255之间。

在笛卡尔坐标系下,原点位置表示黑色,白色位于其对角线另一端,黑白两点的连线表示着灰度等级的变化。

2.归一化RGB色彩模型

由于RGB色彩空间受阴影和光照强度影响较大,故都会用归一化RGB色彩空间降低光照变化对图像处理的影响

设有两个像素点的RGB分量分别为(R1,G1,B1)和(R2,G2,B2),若\frac{R1}{R2} = \frac{G1}{G2} = \frac{B1}{B2}则说明两点的颜色是相同的,只是亮度不同。

归一化RGB能够去掉亮度信息而只保留颜色信息,得 r=\frac{R}{R+G+B}    g=\frac{G}{R+G+B}    b=\frac{B}{R+G+B} ,且r+g+b=1

3.灰度化

将R、G、B值通过等值转换合并为一个灰度分量得过程,灰度化后仅保留亮度信息,丢失饱和度和色度,同时灰度值限制在0~255内,0为全黑,255为全白

灰度转化公式Gray(x,y)=0.299*R(x,y)+0.587*G(x,y)+0.111*B(x,y)

Gray(x,y):灰度化处理后像素点(x,y)的灰度值

4.HSV颜色空间

H:hue,表示色度

S:saturation,表示饱和度,颜色深浅

V:value,表示亮度,明暗程度

二.图像噪声处理

常用空域滤波法(对各个像素的灰度值进行处理)和频域滤波法(把图像从空间域向频域变换)

1.均值滤波

对目标像素给予一个模板,模板内含像素本身和它邻域内的像素。用模板内像素的平均值替换原来的像素值,最终实现去噪。

一般来说,选择的模板窗口越大,图像滤波后边缘就会越模糊,常见模板为3x3和5x5。同时该种滤波方式原理简单,时间复杂度低

2.高斯滤波

图像中每个像素点处与 模板匹配的邻域中各点的像素值 与模板中对应点的值进行加权平均,并用加权平均后的值代替原像素点的值。

3.中值滤波

将每一点的像素值 用 给定模板内所有像素值的中值来代替。作为非线性滤波能够保留较多的边缘细节。

三.形态学处理

1.腐蚀运算

图像A与结构元素B作腐蚀运算

结构元素B的理解:

  • 结构元素B是一个小的形状(通常是矩形或圆形)或模板,它在腐蚀运算中用来控制对象的侵蚀程度。结构元素定义了腐蚀操作中的邻域范围和形状。
  • 结构元素通常是二进制的,其中1表示结构元素的一部分,0表示不包括在内的部分。结构元素的大小和形状取决于特定的应用和目标,它可以是正方形、矩形、圆形或其他形状。

腐蚀运算的执行过程:

  • 将结构元素B放置在图像A的一个像素位置上,通常以结构元素的中心为基准。
  • 对于结构元素B中的每个元素,将其与图像A对应位置的像素值进行比较。
  • 如果结构元素B中的所有元素都与图像A中的对应像素匹配(即都为1),则中心像素位置的输出值将设置为1;否则,输出值将设置为0。
  • 将结构元素B沿着图像A的每个像素位置滑动,重复上述过程,直到腐蚀操作对整个图像完成。

2.膨胀运算

膨胀运算与腐蚀运算相反,膨胀运算(Dilation)是图像形态学处理中的一种基本操作,用于扩张图像中的对象或特定区域。它通常与一个称为结构元素(Structuring Element)的小模板或内核一起使用。

膨胀运算(Dilation)是图像形态学处理中的一种基本操作,用于扩张图像中的对象或特定区域。它通常与一个称为结构元素(Structuring Element)的小模板或内核一起使用。下面是膨胀运算的详细介绍:

  • 结构元素B的选择

    • 结构元素B是一个小的形状或模板,它用于控制膨胀操作的扩张程度。它可以是各种形状,如矩形、圆形或自定义形状,取决于应用的需求。结构元素通常是二进制的,其中1表示结构元素的一部分,0表示不包括在内的部分。
  • 膨胀操作的执行

    • 对于输入图像A中的每个像素,将结构元素B的中心放置在该像素的位置上。通常,结构元素的中心与结构元素的几何中心对齐。
    • 然后,将结构元素B与图像A的对应区域进行比较。如果结构元素中的任何一个像素与图像A中的对应像素匹配(都为1),则将中心像素位置的输出值设置为1;否则,输出值保持为0。
    • 重复上述步骤,将结构元素B在整个图像A上滑动,直到膨胀操作应用于整个图像。
  • 膨胀的效果

    • 膨胀操作的结果是对图像中的对象或特定区域进行扩张。如果结构元素B的形状是圆形或矩形,膨胀将使对象变得更大。膨胀的程度取决于结构元素的大小和形状。
    • 膨胀操作通常用于填充图像中的空洞、连接断开的物体、扩展图像的边界等应用。它也可以用于去除小的噪声或断开的细节。

3.开/闭运算

开运算:先先腐蚀再膨胀。可以断开狭窄的连接和消除噪声点

闭运算:先膨胀再腐蚀。可以消除小的孔洞,填补目标轮廓中断裂的部分

开运算代码示例:

import cv2  #导入相关包
import numpy as np
import matplotlib.pyplot as plt
img = cv2.imread('D:\cg\Scien2.png') #读取图像
grayImage = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  #灰度化处理图像
#kernel = np.ones((5,5),np.uint8) #设置腐蚀运算的内核
kernel = np.ones((3,3),np.uint8)
#先腐蚀后膨胀为开运算
erodsion = cv2.erode(grayImage,kernel,iterations=1)
opening=cv2.dilate(erodsion,kernel,iterations=1)

plt.imshow(opening,cmap=plt.cm.gray),plt.axis('off') #显示图形
plt.show()
cv2.imwrite('D:\cg\Scien2_opening2.png',opening)#将腐蚀运算后结果图片存在对应位置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值