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图像处理时候经常会用到,应用场景最常见就是调整图像亮度、权重加法可以实现两张图像混合。逻辑运算在图像二值化运行时候经常用到,可以得到差异化图像。

原文发布于微信公众号 - OpenCV学堂(CVSCHOOL)

原文发表时间:2016-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨熹的专栏

一文学会用 Tensorflow 搭建神经网络

---- cs224d-Day 6: 快速入门 Tensorflow 本文是学习这个视频课程系列的笔记,课程链接是 youtube 上的, 讲的很好,浅显易懂...

4704
来自专栏PaddlePaddle

【RNN】使用RNN语言模型生成文本

导语 PaddlePaddle提供了丰富的运算单元,帮助大家以模块化的方式构建起千变万化的深度学习模型来解决不同的应用问题。这里,我们针对常见的机器学习任务,提...

5306
来自专栏磐创AI技术团队的专栏

ChatGirl 一个基于 TensorFlow Seq2Seq 模型的聊天机器人

简介 ? 还在开发中,它工作的效果还不好。但是你可以直接训练,并且运行。 包含预处理过的 twitter 英文数据集,训练,运行,工具代码,可以运行但是效果有待...

4188
来自专栏腾讯Bugly的专栏

机器学习入门之HelloWorld(Tensorflow)

1 环境搭建 (Windows) 安装虚拟环境 Anaconda,方便python包管理和环境隔离。 Anaconda3 4.2 http://mirrors...

4668
来自专栏编程

大神级Python工程师是怎么P图的,带你用Python玩转P图

? 1.PIL:Python影像库 PIL或者Python Imaging Library是一个包含许多函数来处理来自Python脚本的图像的包。PIL官方网...

4078
来自专栏杨熹的专栏

了解 Sklearn 的数据集

学习资料:大家可以去莫烦的学习网站学到更多的知识。 学习资料: 相关代码 更多可用数据 网址 ---- ? 今天来看 Sklearn 中的 data s...

3448
来自专栏大数据挖掘DT机器学习

阿里天池大数据竞赛实战:RF&GBRT 完成过程

一点比赛心得,供不太熟悉Xlab RF和GBRT调用的同学参考,不喜勿喷,大神绕道---------- 6月初的时候LR 做到4.9后一直上不去,...

38711
来自专栏ATYUN订阅号

深度学习图像识别项目(中):Keras和卷积神经网络(CNN)

在下篇文章中,我还会演示如何将训练好的Keras模型,通过几行代码将其部署到智能手机上。

2.2K5
来自专栏从流域到海域

Decision Trees in Apache Spark (Apache Spark中的决策树)

Decision Trees in Apache Spark 原文作者:Akash Sethi 原文地址:https://dzone.com/article...

2086
来自专栏人工智能LeadAI

解析Tensorflow官方PTB模型的demo

01 seq2seq代码案例解读 RNN 模型作为一个可以学习时间序列的模型被认为是深度学习中比较重要的一类模型。在Tensorflow的官方教程中,有两个与...

4968

扫码关注云+社区

领取腾讯云代金券