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

    文章

    1063

    浏览量

    40041
  • 计算
    +关注

    关注

    2

    文章

    431

    浏览量

    38478
  • CV
    CV
    +关注

    关注

    0

    文章

    51

    浏览量

    16710

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

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

收藏 人收藏

    评论

    相关推荐

    如何实现PIL和OpenCV之间图像数据的转换呢?

    PIL图像数据格式转换成OpenCV图像数据格式
    的头像 发表于 02-25 13:43 495次阅读

    ELF 1技术贴|如何移植OpenCV

    OpenCV是一个基于BSD许可(开源)发行的计算机视觉库,广泛应用于跨平台环境,包括Linux、Windows、Android及MacOS操作系统。作为计算机视觉领域广受欢迎的标准工具包
    的头像 发表于 01-09 13:55 156次阅读
    ELF 1技术贴|如何移植<b class='flag-5'>OpenCV</b>

    使用图像处理库OpenCV从摄像头获取数据并在PyQt5上显示出来

    OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据
    的头像 发表于 01-05 17:32 811次阅读
    使用<b class='flag-5'>图像</b>处理库<b class='flag-5'>OpenCV</b>从摄像头获取数据并在PyQt5上显示出来

    基于OpenCV的DNN图像风格迁移

    /deep-photo-styletransfer 项目,需要安装 CUDA、pytorch、cudnn等等,配置能花一天的时间。 不过最近我发现一个非常好的开源应用项目,那就是基于OpenCV的DNN图像风格迁移。你只需要安装Open
    的头像 发表于 10-30 10:03 246次阅读

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?

    OpenCV的BGR格式,在libyuv对应的那个格式?OpenCV的RGB格式呢?
    发表于 09-19 06:00

    【RISC-V + OpenCV 计算机视觉】用 VisionFive 2 昉·星光 2 进行物体识别

    强大的计算机视觉库,OpenCV提供了丰富的函数和工具,用于处理图像和视频数据,实现各种计算机视觉任务,使目标检测更加简便高效。 00:00-00:53 板卡及应用介绍 00:53-0
    发表于 09-08 11:42

    用迅为RK3568开发板使用OpenCV处理图像颜色通道提取ROI

    本小节代码在配套资料“iTOP-3568 开发板\\\\03_【iTOP-RK3568 开发板】指南教程 \\\\04_OpenCV 开发配套资料\\\\07”目录下,如下图所示: 在计算机的色彩图像
    发表于 09-01 10:45

    OpenCV库在图像处理和深度学习中的应用

    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用。从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入OpenCV的实战世界。
    的头像 发表于 08-18 11:33 491次阅读

    iTOP-3568开发板使用OpenCV处理图像-颜色转换

    demo05_cvtColor.py 然后向该文件添加以下内容: 1 import cv2 #opencv 的缩写为 cv2,导入 opencv 2 img = cv2.imread(\"lena.png
    发表于 08-14 10:46

    求助,是否可以使用OpenCV图像扩展到全屏?

    ) cv2.setWindowProperty(“Window_name”,cv2。WND_PROP_FULLSCREEN,cv2。WINDOW_FULLSCREEN) 图像显示在全屏,但以原始尺寸保持:img
    发表于 08-14 08:46

    OpenCV图像的基本表示方法

    二值图像是指仅仅包含黑色和白色两种颜色的图像。在计算机中,将白色像素点处理为“1”,将黑色像素点处理为“0”,以方便进行后续的存储和处理等操作。由于图像只有黑色和白色两种不同的颜色,因
    发表于 07-13 12:34 352次阅读

    OpenCV FFT模糊检测方法

      在本教程中,您将学习如何使用OpenCV和快速傅里叶变换(FFT)在图像和实时视流中执行模糊检测。 今天的教程是我上一篇关于OpenCV模糊检测的博客文章的扩展 原始模糊检测方法: 依赖于
    的头像 发表于 06-26 10:47 492次阅读
    <b class='flag-5'>OpenCV</b> FFT模糊检测方法

    [译]在RISC-V CPU上运行OpenCV

    RISC-V是一个相对较新的平台,在物联网市场中越来越受欢迎。2020年,OpenCV开始支持该平台。 有效执行各种图像处理、计算机视觉和机器学习算法需要矢量/SIMD指令,许多现代CPU架构都提供
    发表于 06-22 18:54

    如何进行图像边缘的检测

    吧。 我们将为该项目使用两个主要模块:Numpy,Matplotlib和OpenCV。Matplotlib是一个完整的库,用于在Python中生成静态,动画和交互式可视化。OpenCV是一个高度优化的库,专注于实时应用程序。 OpenC
    的头像 发表于 06-20 15:14 733次阅读
    如何进行<b class='flag-5'>图像</b>边缘的检测

    CMake在Linux 6.1.1-1.0.0搜索包opencv损坏了吗?

    5.15.71_2.2.0 版的 Linux SDK(图像 imx-image-multimedia),一切正常。 我尝试迁移到版本 6.1.1_1.0.0 的 Linux SDK,但它不再起作用了。使用图像
    发表于 05-09 11:32