OpenCV中图像算术操作与逻辑操作
点击上方“小白学视觉”,选择加"星标"或“置顶”
重磅干货,第一时间送达
在图像处理中有两类最重要的基础操作分别是图像点操作与块操作,简单点说图像点操作就是图像每个像素点的相关逻辑与几何运算、块操作最常见就是基于卷积算子的各种操作、实现各种不同的功能。今天小编就跟大家一起学习OpenCV中图像点操作相关的函数与应用场景。几何运算包括加、减、乘、除,逻辑运算包括与、或、非、异或。
准备工作:
选择两张大小一致的图像如下、加载成功以后显示如下:
相关代码如下:
-加操作:
效果显示如下:
就可以看到一轮明月就会出现在美女图片的右上方。
-减操作
效果显示如下:
-乘操作:
创建一张空白图像大小与类型跟美女图片相同,每个像素值为2。跟输入的src1图像相乘,结果显示如下:
-除法操作
创建一张空白图像大小与类型跟美女图片相同,每个像素值为2。跟输入的src1图像相除,结果显示如下:
-基于权重加法
其中参数alpha=1.5、参数beta=0.5,此函数灵活运用可以实现不同的效果,当参数alpha=beta=0.5表示混合权重是均值,我们选择alpha=1.5表示要混合之后的图像更加的亮。混合叠加之后效果显示如下:
此外通过图像与黑色背景图像实现权重混合叠加,赋值重参数值alpha当小于1时候图像变暗、大于1的时候图像变亮。
逻辑非操作
逻辑非操作本质是图像取反操作对于BGR的图像逻辑非操作等价于对每个像素点每个通道使用255减去对应的像素值,实现代码如下:
等价于下面的代码
执行效果如下:
逻辑异或操作
通过逻辑异或操作同样可以实现上述取反操作效果、首先要创建一张纯白色的空白图片、输入图像src1美女图像大小与类型一致。然后通过美女图片与纯白色图片之间的异或操作就得到了上述取反效果。代码实现如下:
效果显示如下:
最后给大家放个大招,学习利用逻辑操作与基本的形态学腐蚀操作实现二值图像骨架提取的综合运用。首先看一下效果:
上面是输入二值图像,下图是提取到的文字骨架。看了效果以后我们再来说一下相关原理与步骤:
1.图像灰度与二值化
2.骨架提取 - 利用腐蚀操作与逻辑操作实现骨架提取
相关代码与各步骤解释如下:
主要是利用腐蚀实现骨架提取,然后每次对腐蚀之后的结果保留,作为下一次计算的输入,通过两次腐蚀不同得到骨架、最终实现骨架提取。
总结与应用场景:
图像的加减乘除操作在用OpenCV图像处理时候经常会用到,应用场景最常见就是调整图像亮度、权重加法可以实现两张图像混合。逻辑运算在图像二值化运行时候经常用到,可以得到差异化图像。
好消息!
小白学视觉知识星球
开始面向外开放啦👇👇👇
下载1:OpenCV-Contrib扩展模块中文版教程 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。 下载2:Python视觉实战项目52讲 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。 下载3:OpenCV实战项目20讲 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。 交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~