0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV中的图像的计算

深度学习自然语言处理 ? 来源:深度学习自然语言处理 ? 作者:云时之间 ? 2020-11-03 17:45 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

今天我们一起学习的是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中,越来越多的函数命名更加直接,极大地简化了我们的操作,我们可以有更多的精力放在算法优化上,而不是在写无穷无尽的程序。其实数字图像处理本身的算法理论很简单,但是一但实际操作起来,问题反而不少,各位希望可以多找几幅图像尝试一下,自己分析一下,相信会有更多的收获! 在中华文化里,鼠乃十二生肖之首,进入鼠年就代表着开始新一轮生肖纪年,也寓意着新的开端,给大家提前拜一个早年!奋斗创造历史,实干成就未来,希望和大家在新的一年里一起努力,共同成长,也感谢大家的支持!

责任编辑:xj

原文标题:【CV学习笔记】图像的计算

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像
    +关注

    关注

    2

    文章

    1094

    浏览量

    41617
  • 计算
    +关注

    关注

    2

    文章

    454

    浏览量

    39430
  • CV
    CV
    +关注

    关注

    0

    文章

    54

    浏览量

    17215

原文标题:【CV学习笔记】图像的计算

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    【GM-3568JHF开发板免费体验】OpenCV开发环境安装和计数程序开发

    、 Android 等系统上运行,并通过Python接口简化操作。 sudo apt install libopencv-dev python3-opencv 四、OpenCV图像识别测试 使用python3
    发表于 08-09 13:30

    itop-3568开发板机器视觉opencv开发手册-图像绘制-画线

    demo11_line.py 然后向该文件添加以下内容: 第 1 行和第 2 行分别导入了 opencv 和 numpy 库; 第 3 行使用 zeros()函数创建一个 512x512 的黑色图片; 第 4 行使
    发表于 06-04 10:38

    基于LockAI视觉识别模块:C++使用图像的统计信息

    图像处理,统计信息可以帮助我们了解图像的特性,例如区域内的像素分布、颜色转换以及特定区域的分析。本文将介绍基于LockAI视觉识别模块如何提取兴趣区域(ROI)、转换颜色通道、计算
    发表于 05-08 10:31

    基于LockAI视觉识别模块:C++图像的基本运算

    图像处理,理解图像的基本操作是掌握计算机视觉技术的关键。本文章将介绍 基于LockAI视觉识别模块下OpenCV
    发表于 05-06 16:56

    基于LockAI视觉识别模块:C++图像的基本运算

    图像处理,理解图像的基本操作是掌握计算机视觉技术的关键。本文章将介绍基于LockAI视觉识别模块下OpenCV
    的头像 发表于 05-06 16:20 ?305次阅读
    基于LockAI视觉识别模块:C++<b class='flag-5'>图像</b>的基本运算

    基于LockAI视觉识别模块:C++图像采集例程

    本文主要演示如何使用LockAI视觉识别模块进行视频流的读取,同时使用Edit模块进行图像传输。基础知识讲解1.1OpenCV简介OpenCV(OpenSourceComputerVisionLibra
    的头像 发表于 04-30 18:23 ?313次阅读
    基于LockAI视觉识别模块:C++<b class='flag-5'>图像</b>采集例程

    快速部署!米尔全志T527开发板的OpenCV行人检测方案指南

    计算HOG特征。HOG特征是一个一维向量,其中每个元素表示图像特定位置和方向的梯度强度。 训练SVM分类器:使用HOG特征作为输入,训练SVM分类器。SVM分类器将学习区分行人和非行人。 评估模型
    发表于 04-11 18:14

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    1 简介 Opencv(Open Source Computer Vision Library)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,
    发表于 12-14 09:31

    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV

    1简介Opencv(OpenSourceComputerVisionLibrary)是一个基于开源发行的跨平台计算机视觉库,它实现了图像处理和计算机视觉方面的很多通用算法,已成为
    的头像 发表于 12-14 09:10 ?973次阅读
    AI模型部署边缘设备的奇妙之旅:如何在边缘端部署<b class='flag-5'>OpenCV</b>

    【AI实战项目】基于OpenCV的“颜色识别项目”完整操作过程

    OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者备受青睐。学习OpenCV主要就是学习里面的
    的头像 发表于 12-09 16:42 ?1540次阅读
    【AI实战项目】基于<b class='flag-5'>OpenCV</b>的“颜色识别项目”完整操作过程

    基于OpenCV的拆分和合并图像通道实验案例分享_基于RK3568教学实验箱

    一、实验目的 本节视频的目的是了解图像通道的概念,学习OpenCV的基本操作,并掌握通过OpenCV实现拆分和合并图像通道的方法。 二、实验原理 拆分与合并
    发表于 12-03 14:27

    RK3568 + OpenCV 会碰撞出什么火花?案例详解:2-1 基于OpenCV的画线实验

    一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV具有以下特点: 不管是科学研究,还是商业
    发表于 12-03 14:09

    一个月速成python+OpenCV图像处理

    OpenCV是一个广受欢迎且极为流行的计算机视觉库,它因其强大的功能、灵活性和开源特性而在开发者和研究者备受青睐。学习OpenCV主要就是学习里面的
    的头像 发表于 11-29 18:27 ?519次阅读
    一个月速成python+<b class='flag-5'>OpenCV</b><b class='flag-5'>图像</b>处理

    OpenCV教程之OpenCV图像阈值处理

    阈值的基本概念是为了简化图像以进行分析。当我们将图像转换为灰度图像时,必须记住灰度图像仍然至少有255个值。阈值是将所有内容转换为白色或黑色的值,基于阈值。假设我们希望阈值为125(2
    的头像 发表于 11-16 10:16 ?697次阅读
    <b class='flag-5'>OpenCV</b>教程之<b class='flag-5'>OpenCV</b><b class='flag-5'>图像</b>阈值处理

    手写图像模板匹配算法在OpenCV的实现

    OpenCV的模板匹配是支持基于NCC相似度查找的,但是不是很好用,一个主要的原因是查找最大阈值,只能匹配一个,自己比对阈值,又导致无法正确设定阈值范围,所以问题很多。于是我重新写了纯Python版本的NCC图像模板匹配的代码
    的头像 发表于 11-11 10:12 ?842次阅读
    手写<b class='flag-5'>图像</b>模板匹配算法在<b class='flag-5'>OpenCV</b><b class='flag-5'>中</b>的实现