Python-初学openCV——图像预处理(七)——亮度变换、形态学变换

目录

一、图像亮度变换

1、亮度变换

2、线性变换

3、直接像素值修改

二、形态学变换

1、核

2、腐蚀

3、膨胀

三、高级形态学变换

1、开运算

2、闭运算

3、礼帽运算

4、黑帽运算

5、形态学梯度


一、图像亮度变换

图像都是由一个个像素值组成的,图像的亮度变换实际上还是图像像素值的变换

1、亮度变换

对比度调整:图像暗处像素强度变低,图像亮处像素强度变高,从而拉大中间某个区域范围的显示精度。

亮度调整:图像像素强度整体变高或者变低

OpenCV调整图像对比度和亮度时,公式为:。但是不能浅显的讲是控制对比度,是控制亮度的。

对比度:需要通过一起控制。

亮度:通过控制。

2、线性变换

使用**cv2.addWeighted()**函数,可以对图像的像素值进行加权平均,进而改变图像的整体亮度。亮度增益可以通过向每个像素值添加一个正值来实现

python 复制代码
cv2.addWeighted(src1, alpha, src2, beta, gamma)

src1:第一张输入图片

alpha:第一张图片的权重

src2:第二张输入图片

beta:第二张图片的权重

gamma:一个标量,将被添加到权重求和的结果上,可用于调整总体亮度

3、直接像素值修改

如果只需要增加或减少固定的亮度值,可以直接遍历图像像素并对每个像素值进行加减操作

python 复制代码
numpy.clip(a, a_min, a_max)

a:输入数组

a_min:指定最小值,数组中所有小于a_min 的元素将被替换为 a_min

a_max:指定最大值,数组中所有大于a_max 的元素将被替换为 a_max

(用于对数组中的元素进行限定,将超出指定范围的元素值截断至指定的最小值和最大值之间)

二、形态学变换

一种基于形状的简单变换,它的处理对象通常是二值化图像。形态学变换有两个输入,一个输出:输入为原图像、核(结构化元素),输出为形态学变换后的图像。其基本操作有腐蚀和膨胀,这两种操作是相反的,即较亮的像素会被腐蚀和膨胀

1、核

核(kernel)其实就是一个小区域,通常为3*3、5*5、7*7大小,有着其自己的结构

示例:(一个5x5的全1数组)

2、腐蚀

腐蚀操作就是使用核在原图(二值化图)上从图像的左上角开始,滑动到图像的右下角。在滑动过程中,令核值为1的区域与被核覆盖的对应区域进行相乘,得到其最小值,该最小值就是卷积核覆盖区域的中心像素点的新像素值,接着继续滑动。由于操作图像为二值图,所以不是黑就是白,这就意味着,在被核值为1覆盖的区域内,只要有黑色(像素值为0),那么该区域的中心像素点必定为黑色(0)。这样做的结果就是会将二值化图像中的白色部分尽可能的压缩

python 复制代码
erosion=cv.erode(car,kernel,iterations=1)

iterations:迭代次数

3、膨胀

也就是从图像的左上角开始,滑动到图像的右下角,但与腐蚀恰恰相反,在滑动过程中,令核值为1的区域与被核覆盖的对应区域进行相乘,得到其最大值,该最大值就是核覆盖区域的中心像素点的新像素值,接着继续滑动。由于操作图像为二值图,所以不是黑就是白,这就意味着,在卷积核覆盖的区域内,只要有白色(像素值为255),那么该区域的中心像素点必定为白色(255)。这样做的结果就是会将二值化图像中的白色部分尽可能的扩张

python 复制代码
dilation=cv.dilate(car,kernel,iterations=1)

三、高级形态学变换

常用于图像的噪声去除、边缘提取、图像闭合/开口等操作

python 复制代码
cv2.morphologyEx(src, op, kernel)

src:输入二值图像

op:操作类型(如下)

kernel:核(结构元素)

iterations(可选):迭代次数

1、开运算

开运算是先腐蚀后膨胀,其作用 是:分离物体,消除小区域。特点:消除噪点,去除小的干扰块,而不影响原来的图像

2、闭运算

闭运算与开运算相反,是先膨胀后腐蚀,作用 是消除/"闭合"物体里面的孔洞,特点:可以填充闭合区域

3、礼帽运算

礼帽运算用来分离比邻近点亮一些的斑块。当一幅图像具有大幅的背景的时候,而微小物品比较有规律的情况下,可以使用礼帽运算进行背景提取(原图与开运算结果图之差)

4、黑帽运算

黑帽运算后的效果图突出了比原图轮廓周围的区域更暗的区域,且这一操作和选择的核的大小相关。黑帽运算用来分离比邻近点暗一些的斑块(原图与闭运算结果图之差)

5、形态学梯度

形态学梯度是一个基于结构元素的图像处理方法,它通过比较原图像与膨胀图和腐蚀图之间的差异来突出图像边缘特征。具体来说,对于图像中的每个像素点,其形态学梯度值是该像素点在膨胀后的图像值与其在腐蚀后的图像值之差。这样得到的结果通常能够强化图像的边缘信息,并且对噪声有一定的抑制作用

相关推荐
lisw053 分钟前
编程语言top5对比分析!
大数据·人工智能·程序人生·机器学习·软件工程
打码人的日常分享3 分钟前
信息化系统安全建设方案
大数据·数据库·人工智能·安全·系统安全
幂简集成12 分钟前
需求从0到1:AI提示词助力客户画像→功能脑暴→PRD→价值主张
大数据·人工智能
居然JuRan22 分钟前
DeepSeek+LoRA+FastAPI微调大模型并暴露接口给后端调用
人工智能
彭祥.25 分钟前
点云-标注-分类-航线规划软件 (一)点云自动分类
人工智能·分类·数据挖掘
丰年稻香32 分钟前
神经网络反向传播中的学习率:从理论到实践的全面解析
人工智能·神经网络·学习
北京耐用通信42 分钟前
一“网”跨协议,万“设”皆可通!耐达讯自动化Modbus TCP转Profibus ,让控制无界,让能源有道。
网络·人工智能·网络协议·自动化·信息与通信
云卓SKYDROID1 小时前
无人机航电系统散热技术要点
人工智能·无人机·材质·高科技·云卓科技
斯普信专业组1 小时前
AI重构混沌工程:智能韧性守护系统高可用时代已来
人工智能·重构·混沌工程
BFT白芙堂1 小时前
【买机器人,上BFT】北京大学联合项目 论文解读 | H2R:一种用于机器人视频预训练的人机数据增强技术
人工智能·机器学习·3d·机器人·franka·leaphand·灵巧手方案