【CV学习笔记】图像的计算

2020 年 11 月 1 日 深度学习自然语言处理

关注“深度学习冲鸭”,一起学习一起冲鸭!

设为星标,第一时间获取更多干货





作者:云时之间
来源:知乎
链接:https://zhuanlan.zhihu.com/p/103879057
编辑:王萌


今天我们一起学习的是OpenCV中的图像的计算,在图像计算中,分为像素级运算和代数运算这两大类,今天我们借助OpenCV中的函数一起来看看这些运算。





一:图像的像素级运算





像素级运算中非常常用的就是点运算,之前的文章中说过的让一张图片反转颜色其实就是点运算来实现的。点运算我们一般将其分为三大类:


线性点运算、非线性点运算、映射表点运算


点运算有以下的几个特点:


1:点运算针对图像中的每一个像素灰度,独立地进行灰度值的改变,换句话说,点运算实际上是一种在灰度程度上进行的变换,这是前提。

2:输出图像中每个像素点的灰度值,仅取决于相应输入像素点的值

3:点运算不改变图像内的空间关系

4:从像素到像素的操作
5:点运算可完全由灰度变换函数或灰度映射表确定


具体的例子可以参照之前的文章进行试验,这里不再赘述





二:代数运算





代数运算最常见的是加、减、乘、除这四类,整个代数运算对图片的要求挺高的,首先要尺寸大小相同,然后图片的体积不能太大,如果太大运算起来很费时间。


  1. 加法


加法运算的计算公式如下:


C(x,y) = A(x,y) + B(x,y)


其实就是将A,B两张图片每个像素值相加得到一张新的图片,图像加法在图像合成方面用的比较广泛。假如我们将两个图像f(x,y)和h(x,y)进行以下处理:

g(x,y) = 0.5f(x,y) + 0.5h(x,y)


这样图像会得到类似二次曝光的效果


将这个公式进行推广:


g(x,y) = αf(x,y) + βh(x,y) 其中α+β= 1


然后合理的调节α,β的值,我们可以将两张图片进行合成,并且效果很不错


接下来我们使用OpenCV来进行一下操作:


在OpenCV中提供了一些图片进行试验:



找到你相应的安装OpenCV的路径,然后按照图片进行查找即可:

在这里我们选择其中的LinuxLogo和WindowsLogo进行运算,我们定义一个函数,按照以下调用即可:



结果如下:



  2. 减法



C(x,y) = A(x,y) - B(x,y)


减法我们可以看做是加法的反例,减法主要用来去除不需要的叠加性图案


或者检测同一场景两幅图像之间的变化。


调用方法如下:



让我们看看结果:


  3. 乘法



C(x,y) = A(x,y) × B(x,y)

乘法主要用在图像的局部显示,同时可以用二值蒙板图像与原图像做乘法,通常来说就是加滤镜。。。

OpenCV中乘除法的操作方法:


结果如下:


这里说一下为什么不写一下除法,因为每个像素点取值0-255,一相除以后没有多少数值了,所呈现出来的图像也没有什么有效信息,所以我们一般不怎么使用除法。




三:逻辑运算(求反、异或、或、与)





1)求反的定义

g(x,y) = R - f(x,y)
R为f(x, y)的灰度级。
可以应用在:
获得一个图像的负像
获得一个子图像的补图像

2)异或运算的定义

g(x,y) = f(x,y) or h(x,y)
主要应用举例
获得相交子图像

3)与运算的定义

g(x,y) = f(x,y) and h(x,y)
主要应用
求两个子图像的相交子图
在OpenCV中的操作如下:


得到的结果如下:





四:尾巴





在上边的一些操作中,可以看到我基本没有写代码,直接调用OpenCV即可,如今的代码库多种多样,开源的数不胜数,可以说让我们进入了傻瓜编程阶段,并且在OpenCV中,越来越多的函数命名更加直接,极大地简化了我们的操作,我们可以有更多的精力放在算法优化上,而不是在写无穷无尽的程序。其实数字图像处理本身的算法理论很简单,但是一但实际操作起来,问题反而不少,各位希望可以多找几幅图像尝试一下,自己分析一下,相信会有更多的收获!

在中华文化里,鼠乃十二生肖之首,进入鼠年就代表着开始新一轮生肖纪年,也寓意着新的开端,给大家提前拜一个早年!奋斗创造历史,实干成就未来,希望和大家在新的一年里一起努力,共同成长,也感谢大家的支持!


每天进步一丢丢


常见的数据簇的特点

为了评估不同聚类算法的性能优劣,我们需要了解常见的数据簇的特点。
1. 以中心定义的数据簇: 这类数据集合倾向于球形分布,通常中心被定义为质心,即此数据簇中所有点的平均值。集合中的数据到中心的距离相比到其他簇中心的距离更近。
2. 以密度定义的数据簇: 这类数据集合呈现和周围数据簇明显不同的密度,或稠密或稀疏。当数据簇不规则或互相盘绕,并且有噪声和离群点时,常常使用基于密度的簇定义。
3. 以连通定义的数据簇: 这类数据集合中的数据点和数据点之间有连接关系,整个数据簇表现为图结构。该定义对不规则形状或者缠绕的数据簇有效。
4. 以概念定义的数据簇: 这类数据集合中的所有数据点具有某种共同性质。


  
  
    
下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!
后台回复【五件套


下载二:南大模式识别PPT
后台回复南大模式识别



说个正事哈



由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:

(1)点击页面最上方深度学习自然语言处理”,进入公众号主页。

(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。

感谢支持,比心



投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等

记得备注呦


推荐两个专辑给大家:
专辑 | 李宏毅人类语言处理2020笔记
专辑 | NLP论文解读
专辑 | 情感分析

整理不易,还望给个在看!

登录查看更多
0

相关内容

一个跨平台的计算机视觉处理库,全称是Open Source Computer Vision。
最新《图像到图像转换:方法与应用》综述论文,19页pdf
专知会员服务
31+阅读 · 2021年1月25日
专知会员服务
27+阅读 · 2020年10月24日
[CVPR 2020]BEDSR-Net:单张文档图像的阴影去除深度网络
专知会员服务
25+阅读 · 2020年9月29日
《常微分方程》笔记,419页pdf
专知会员服务
70+阅读 · 2020年8月2日
【视频】几何数据嵌入表示学习,74页ppt
专知会员服务
33+阅读 · 2020年7月24日
【CVPR2020】跨模态哈希的无监督知识蒸馏
专知会员服务
59+阅读 · 2020年6月25日
深度学习「CV」学习实践指南!
专知
10+阅读 · 2020年6月21日
机器学习计算距离和相似度的方法
极市平台
10+阅读 · 2019年9月20日
Deformable Kernels,用于图像/视频去噪,即将开源
极市平台
13+阅读 · 2019年8月29日
计算摄影 | 图像合成与融合
计算机视觉life
5+阅读 · 2019年6月3日
原来CNN是这样提取图像特征的。。。
计算机视觉life
8+阅读 · 2018年11月23日
CVPR 2018 笔记
计算机视觉战队
3+阅读 · 2018年5月25日
【干货】卷积神经网络CNN学习笔记
机器学习研究会
15+阅读 · 2017年12月17日
相似图片搜索的原理
数据库开发
9+阅读 · 2017年8月11日
Arxiv
17+阅读 · 2019年3月28日
Arxiv
5+阅读 · 2018年10月11日
Viewpoint Estimation-Insights & Model
Arxiv
3+阅读 · 2018年7月3日
Arxiv
7+阅读 · 2018年1月21日
VIP会员
相关资讯
深度学习「CV」学习实践指南!
专知
10+阅读 · 2020年6月21日
机器学习计算距离和相似度的方法
极市平台
10+阅读 · 2019年9月20日
Deformable Kernels,用于图像/视频去噪,即将开源
极市平台
13+阅读 · 2019年8月29日
计算摄影 | 图像合成与融合
计算机视觉life
5+阅读 · 2019年6月3日
原来CNN是这样提取图像特征的。。。
计算机视觉life
8+阅读 · 2018年11月23日
CVPR 2018 笔记
计算机视觉战队
3+阅读 · 2018年5月25日
【干货】卷积神经网络CNN学习笔记
机器学习研究会
15+阅读 · 2017年12月17日
相似图片搜索的原理
数据库开发
9+阅读 · 2017年8月11日
Top
微信扫码咨询专知VIP会员