首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【从零学习OpenCV 4】图像修复

经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。...为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。...图像修复不仅可以去除图像中得“划痕”,还可以去除图像中得水印、日期等。...OpenCV 4提供了能够对含有较少污染或者水印的图像进行修复的inpaint()函数,该函数的函数原型在代码清单8-26中给出。...函数的第一个参数是需要修复的图像,该函数可以对灰度图像和彩色图像进行修复。修复灰度图像时,图像的数据类型可以为CV_8U、CV_16U或者CV_32F;修复彩色图像时,图像的数据类型只能为CV_8U。

57100

【从零学习OpenCV 4】图像卷积

过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...卷积首先需要将卷积模板旋转180°,之后从图像的左上角开始移动旋转后的卷积模板,从左到右,从上到下依次进行卷积计算,最终得到卷积后的图像。...图5-2 图像卷积步骤Step4 Step5:将卷积模板在图像中从左至右从上到下移动,重复以上3个步骤,直到处理完所有的像素值,每一次循环的处理结果如图5-3所示。 ?...针对上面的卷积过程,OpenCV 4中提供了filter2D()函数用于实现图像和卷积模板之间的卷积运算,该函数的函数原型在代码清单5-1中给出。...代码清单5-2 myFillter.cpp图像卷积 1. #include opencv2\opencv.hpp> 2. #include 3. 4.

73310
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【从零学习OpenCV 4】图像模板匹配

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。...Step3:将滑动窗口从左上角开始先向右滑动,滑动到最右边后向下滑动一行,从最左侧重新开始滑动,记录每一次移动后计算的模板与滑动窗口的相似性。...OpenCV 4中提供了用于图像模板匹配的函数matchTemplate(),该函数能够实现模板匹配过程中图像与模板相似性的计算,在代码清单4-12中给出了函数原型。...代码清单4-13 myMatchTemplate.cpp图像的模板匹配 1. #include opencv2\opencv.hpp> 2.

    1.2K10

    【从零学习OpenCV 4】图像直方图绘制

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...在OpenCV 4中只提供了图像直方图的统计函数calcHist(),该函数能够统计出图像中每个灰度值的个数,但是对于直方图的绘制需要使用者自行绘制。...nimages:输入的图像数量 channels:需要统计的通道索引数组,第一个图像的通道索引从0到images[0].channels()-1,第二个图像通道索引从images[0].channels...该函数用于统计图像中每个灰度值像素的个数,例如统计一张CV_8UC1的图像,需要统计灰度值从0到255中每一个灰度值在图像中的像素个数,如果某个灰度值在图像中没有,那么该灰度值的统计结果就是0。...代码清单4-2 myCalHist.cpp绘制图像直方图 1. #include opencv2\opencv.hpp> 2. #include 3. 4.

    1K20

    【从零学习OpenCV 4】图像透视变换

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 本小节将介绍图像的另一种变换——透视变换。...透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3×3的矩阵变换矩阵表示,该矩阵可以通过两张图像中四个对应点的坐标求取,因此透视变换又称作“四点变换”。...与仿射变换一样,OpenCV 4中提供了根据四个对应点求取变换矩阵的getPerspectiveTransform()函数和进行透视变换的warpPerspective()函数,接下来将介绍这两个函数的使用方法...代码清单3-37 myWarpPerspective.cpp二维码图像透视变换 1. #include opencv2\opencv.hpp> 2.

    2.8K10

    【从零学习OpenCV 4】图像像素统计

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...因此针对矩阵数据的统计工作在图像像素中同样具有一定的意义和作用。在OpenCV 4中集成了求取图像像素最大值、最小值、平均值、均方差等众多统计量的函数,接下来将详细介绍这些功能的相关函数。...1 01 寻找图像像素最大值与最小值 OpenCV 4提供了寻找图像像素最大值、最小值的函数minMaxLoc(),该函数的原型在代码清单3-7中给出。...注意 如果矩阵中存在多个最大值或者最小值时,minMaxLoc()函数输出最值的位置为按行扫描从左向右第一次检测到最值的位置,同时输入参数时一定要注意添加取地址符。...OpenCV 4提供了mean()函数用于计算图像的平均值,提供了meanStdDev()函数用于同时计算图像的均值和标准方差。接下来将详细的介绍这两个函数的使用方法。

    1.8K10

    OpenCV基础02--从文件显示加载图像

    在本节中,我将向您展示如何使用 OpenCV 库函数从文件加载图像并在窗口中显示图像。首先,打开C++ IDE并创建一个新项目。然后,您必须为 OpenCV 配置新项目。...opencv2/opencv.hpp 头文件本身将包含 OpenCV 库中所有其他必要的头文件。您必须仅包含此头文件才能编译 OpenCV 代码。...该函数从文件“*C:\Users\Gerry\Desktop\lena.png*”加载图像,并将其作为 Mat 对象返回。...("C:\Users\Gerry\Desktop\lena.png");Mat imread(const String&filename, int flags = IMREAD_COLOR)此函数从指定文件加载图像...destroyWindow(windowName); //destroy the created window总结在上面的部分中,您已经了解到,- 如何从文件加载图像- 如何处理图像加载失败时的错误情况

    22900

    【从零学习OpenCV 4】图像读取函数imread

    该函数第一个参数以字符串形式给出待读取图像的地址,第二个函数是设置读取图像的形式,默认的参数是以彩色图的形式读取,针对不同需求可以更改参数,在OpenCV 4.1中给出了13种模式读取图像的形式,总结起来分别是以原样式读取...、灰度图读取、彩色图读取、多位数读取、在读取时将图像缩小一定尺寸等形式读取,具体可选择的参数及作用在表2-3种给出,这里需要指出的是,将彩色图像转成灰度图通过编解码器内部转换,可能会与OpenCV程序中将彩色图像转成灰度图的结果存在差异...,但是卫星遥感图像、超高分辨率图像的像素数目可能会超过这个阈值,可以通过修改系统变量中的OPENCV_IO_MAX_IMAGE_PIXELS参数调整能够读取的最大像素数目。...从零学习OpenCV 4往期推荐 【从零学习OpenCV 4】Windows系统中安装OpenCV 4 【从零学习OpenCV 4】Ubuntu系统中安装OpenCV 4 【从零学习OpenCV 4...】opencv_contrib扩展模块的安装 【从零学习OpenCV 4】Mat类介绍 【从零学习OpenCV 4】Mat类构造与赋值 【从零学习OpenCV 4】Mat类支持的运算 【从零学习OpenCV

    3.4K20

    【从零学习OpenCV 4】图像仿射变换

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...介绍完图像的缩放和翻转后,接下来将要介绍图像的旋转,但是在OpenCV 4中并没有专门用于图像旋转的函数,而是通过图像的仿射变换实现图像的旋转。...针对这个流程,OpenCV 4提供了getRotationMatrix2D()函数用于计算旋转矩阵和warpAffine()函数用于实现图像的仿射变换。...(3.14) 仿射变换又称为三点变换,如果知道变换前后两张图像中三个像素点坐标的对应关系,就可以求得仿射变换中的变换矩阵,OpenCV 4提供了利用三个对应像素点来确定矩阵的函数getAffineTransform...代码清单3-34 myWarpAffine.cpp图像旋转与仿射变换 1. #include opencv2\opencv.hpp> 2. #include 3.

    93340

    【从零学习OpenCV 4】图像距离变换

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。...为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。...图6-3 5×5矩阵距离中心位置的棋盘距离 OpenCV 4中提供了用于计算图像中不同像素之间距离的distanceTransform()函数,该函数有两个原型,在代码清单6-1中给出了第一种函数原型。...代码清单6-3 myDistanceTransform.cpp图像距离变换 #include opencv2\opencv.hpp> #include using namespace...图6-6 myDistanceTransform.cpp程序中黑底白图的距离变换结果 经过几个月的努力,市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》将于近期由人民邮电出版社发行。

    1.3K20

    【从零学习OpenCV 4】图像金字塔

    高斯金字塔是指通过下采样不断的将图像的尺寸缩小,进而在金字塔中包含多个尺度的图像,高斯金字塔的形式如图3-30所示,一般情况下,高斯金字塔的最底层为图像的原图,每上一层就会通过下采样缩小一次图像的尺寸,...OpenCV 4中提供了pyrDown()函数专门用于图像的下采样计算,便于构建图像的高斯金字塔,该函数的函数原型在代码清单3-51中给出。 ?...i+1层或者不在高斯金字塔中,之后对这张图像再进行上采样,将图像尺寸恢复到第i层图像的大小,最后求取高斯金字塔第i层图像与经过上采样后得到的图像的差值图像,这个差值图像就是拉普拉斯金字塔的第i层图像,整个过程的流程如图...图3-31 由高斯金字塔求取拉普拉斯金字塔的流程 对于上采样操作,OpenCV 4中提供pyrUp()函数实现,其函数原型在代码清单3-52中给出。...#include opencv2\opencv.hpp> 2. #include 3. 4. using namespace cv; 5.

    80810

    【从零学习OpenCV 4】创建图像窗口滑动条

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...为了更让小伙伴更早的了解最新版的OpenCV 4,小白与出版社沟通,提前在公众号上连载部分内容,请持续关注小白。 图像窗口滑动条,顾名思义就是在显示图像的窗口中创建能够通过滑动改变数值的滑动条。...OpenCV 4中通过createTrackbar()函数在显示图像的窗口上创建滑动条,该函数的函数原型在代码清单3-54中给出。...userdata:传递给回调函数的可选参数 该函数能够在图像窗口的上方创建一个范围从0开始的整数滑动条,由于滑动条只能输出整数,如果需要得到小数,必须进行后续处理,例如输出值除以10得到含有1位小数的数据...#include opencv2/opencv.hpp> 2. #include 3. 4. using namespace std; 5.

    2.7K20

    【从零学习OpenCV 4】图像中添加椒盐噪声

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...目前为止OpenCV 4中没有提供专门用于为图像添加椒盐噪声的函数,需要使用者根据自己需求去编写生成椒盐噪声的程序,本小节将会带领读者一起实现在图像中添加椒盐噪声。...考虑到椒盐噪声会随机产生在图像中的任何一个位置,因此对于椒盐噪声的生成需要使用到OpenCV 4中能够产生随机数的函数rand(),为了能够生成不同数据类型的随机数,该函数拥有多种演变形式,在代码清单5...OpenCV 4中的随机数生成函数。...代码清单5-4 mySaltAndPepper.cpp图像中添加椒盐噪声 1. #include opencv2\opencv.hpp> 2.

    2.2K20

    【从零学习OpenCV 4】分割图像——分水岭法

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《OpenCV 4开发详解》。...QR二维码识别是OpenCV 4新增加的功能,OpenCV 4提供了相关函数直接解码QR二维码读取其中的信息,但是在OpenCV 4之前的版本中对QR二维码的识别需要借助第三方工具,常用的是zbar解码库...函数第一个参数是待检测是否含有QR二维码的图像,图像可以是灰度图像或者彩色图像,图像的尺寸任意。函数第二个参数是包含QR二维码的最小区域四边形的四个顶点坐标,数据类型为vector。...函数第一个参数是含有QR二维码的灰度图像或者彩色图像。...代码清单7-40 mydetectQRcode.cpp二维码识别 #include opencv2/opencv.hpp> #include #include

    75610

    OpenCV实战:从图像处理到深度学习的全面指南

    本文深入浅出地探讨了OpenCV库在图像处理和深度学习中的应用。从基本概念和操作,到复杂的图像变换和深度学习模型的使用,文章以详尽的代码和解释,带领大家步入OpenCV的实战世界。 1....图像阈值化 图像阈值化是将图像从灰度转换为二值化图像的过程,OpenCV提供了cv2.threshold()函数来进行这项操作。...这个程序可以实时地从摄像头捕获视频,并检测视频中的人脸。...,它可以帮助我们从图像中识别出物体的轮廓。...从最基本的图像读取和显示,到复杂的图像变换、图像分割、边缘检测,再到深度学习的图像分类和物体检测,我们都有详细的代码和解释。

    1.1K10

    【从零学习OpenCV 4】两图像间的像素操作

    经过几个月的努力,小白终于完成了市面上第一本OpenCV 4入门书籍《从零学习OpenCV 4》。...1 01 两张图像的比较运算 OpenCV 4中提供了求取两张图像每一位像素较大或者较小灰度值的max()、min()函数,这两个函数分别比较两个图像中每一位元素灰度值的大小,保留较大(较小)的灰度值...如果像素取值只有0和1的话,那么图中的前4行数据正好对应了所有的运算规则,但是CV_8U类型的图像像素值从0取到255,此时的逻辑运算就需要将像素值转成二进制数后再进行,因为CV_8U类型是8位数据,因此对...了解了像素的辑运算原理之后,我们再来看OpenCV 4中提供的辑运算函数的使用方法。 ? 图3-12 图像逻辑运算规则 代码清单3-15 OpenCV 4中像素逻辑运算函数原型 1....代码清单3-16 myLogicOperation.cpp两个图像像素逻辑运算 1. #include opencv2\opencv.hpp> 2.

    93310
    领券