OpenCV学习笔记
文章平均质量分 78
茄子焦糖
我不是个憨憨的程序员
展开
-
OpenCV进阶--图像“金字塔”
图像“金字塔”是通过多个分辨率表示图像的一种有效且简单的结构,它是以一系列以金字塔形状排列、分辨率逐步降低的图像集合,如图:一、高斯“金字塔” 它是解决尺度不确定性的一种常用的方法。它是指通过下采样不断地将图像的尺寸缩小,进而包含多个尺寸的图像。通常情况没往上一层,尺寸缩小为原来的一半。在OpenCV中提供了pyrDown()函数专门用于图像的下采样的计算。pyrDown()函数原型:void cv::pyrDown(InputArray...原创 2021-10-15 19:21:23 · 729 阅读 · 1 评论 -
OpenCV进阶--感兴趣区域
当一幅图像很大时,我们需要对截取一幅图像的感兴趣区域,这样会大大节约内存,在OpenCV中提供了两种截取ROI(感兴趣区域)的方式,在本文中将会有详细的介绍。 从原图中截取部分内容,就是将需要截取的部分在原图像中标记出来,可以用Rect数据结构标记,也可以用Range数据结构标记,这两种数据结构在下面给出。Rect_(_Tp _x, _Tp _y, _Tp _width, _Tp _height)cv::Range(int start, int end)_T...原创 2021-10-09 17:59:46 · 781 阅读 · 0 评论 -
OpenCV进阶--在图像上绘制几何图形
我们需要在图像中绘制一些图案一起突出某些内容的作用。在OpenCV中有许多绘制几何图形的方法。一、绘制圆形 在OpenCV中提供了circle()函数用于绘制圆形,代码原型如下:void cv::circle(InputOutputArray img, Point center, int radius, const Scalar& color, ...原创 2021-10-08 19:47:44 · 676 阅读 · 0 评论 -
OpenCV进阶--图像变换(三)
继上文:五、图像透视变换 首先透视变换是按照物体成像投影规律进行变换,即将物体重新投影到新的成像平面。在透视变换中,透视前的图像和透视后的图像之间的变换关系可以用一个3*3的变换矩阵表示,该矩阵可以通过两幅图像中4个对应点的坐标求取,因此透视变换又称作“四点变换”。在OpenCV中提供了根据4个对应点求取变换矩阵的getPerspectiveTransform()函数和透视变换的warpPerspective()函数。getPerspectiveTransform()函数原型:...原创 2021-10-06 17:33:40 · 520 阅读 · 0 评论 -
OpenCV进阶--图像变换(二)
继上文:三、图像翻转变换 在OpenCV中提供了flip()函数用于图像的翻转,该函数的原型如下:void cv::filp(InputArray src, OutputArray dst, int flipCode )src:输入图像。dst:输出图像,与src具有相同的大小,数据类型及通道数。filpCode:翻转方式标志。数值大于0表示绕y轴进行翻转;数值等于0,表示绕x轴进行...原创 2021-10-05 20:18:09 · 234 阅读 · 0 评论 -
OpenCV进阶--图像变换(一)
一、图像连接 图像连接是指两个具有相同高度或者宽度的图像连接到一起,图像的下(左)边缘是另一个上(右)边缘,图像连接常在需要对两幅图像内容进行对比的时候用到的。在OpenCV中针对图像左右连接和上下连接提供了两种不同的函数,vconcat()函数用于实现图像或矩阵数据的上下连接,hconcat()函数用于实现图像或矩阵数据的左右连接。...原创 2021-10-04 20:27:01 · 1772 阅读 · 2 评论 -
OpenCV进阶--图像二值化
图像像素的灰度值无论在什么数据类型中都只有最大值和最小值两种取值,因此成为二值图像。二值图形色彩种类少,可以进行高度的压缩,节省了内存空间。在OpenCV中提供了threshold()函数和adaptiveThreshold()两个函数用于实现图像的二值化。一、threshold()函数函数原型:double cv::threshold( InputArray src, OutputArray dst, ...原创 2021-09-25 13:28:18 · 1036 阅读 · 0 评论 -
OpenCV进阶--图像像素操作处理
一、图像像素统计1.1寻找图像像素最大值与最小值 OpenCV中提供了寻找像素最大值、最小值的函数minMaxLoc(),该函数的代码原型如下:void cv::minMaxLoc(InputArray src, double *minVal, double *maxVal = 0, Point *minLoc = 0, ...原创 2021-09-21 12:15:00 · 1518 阅读 · 0 评论 -
OpenCV进阶--图像颜色空间
一、颜色模型与转换1.1RGB颜色模型 RGB颜色空间模型: 该模型的命名方式是采用三种颜色的英文首字母,分别是红色,绿色,和蓝色。在RGB模型中所有的颜色都是这三种颜色通过不同比例的混合模型,如果三种颜色都为零,则表示为黑色,如果三种颜色的分量相同且都为最大值,则表示为白色。在这个基础上增加第四个通道即为RGBA模型,第四个通道表示颜色的透明度,当没有透明度需求的时候,RGBA模型就会退化成RGB模型。1.2YUV颜色模型 YUV模型是电视...原创 2021-09-18 20:30:05 · 949 阅读 · 1 评论 -
OpenCV基础--数据的保存
一、图像数据的保存 opencv提供imwrite()函数用于将Mat类矩阵保存成图像文件,该函数的原型如下:bool cv::imwrite(const String &filename, InputArray img, Const std::vector<int> ¶ms = std::vector<int>() )...原创 2021-09-17 21:19:38 · 2246 阅读 · 0 评论 -
OpenCV基础---视频加载与摄像头调用
一、视频数据的读取 视频文件是由多张图片组成的,但imread()函数并不能直接读取视频文件,VideoCapture类起到了重要作用。读取视频文件VideoCapture类构造函数:cv::VideoCapture::VidoeCapture(); //默认构造函数cv::VideoCapture::VideoCapture(const String &filename, int apiPreferenc...原创 2021-09-13 22:26:38 · 573 阅读 · 1 评论 -
OpenCV基础--图像的读取与显示
一、图像读取函数imread() 函数原形:cv::Mat cv::imread(const String &filename, int flags = IMREAD_COLOR )filename: 需要读取图像的文件名称,包含图像地址、名称和图像文件扩展名。flags: 读取图像形式的标志,如将彩色图像按照灰度读取,默认参数是按照彩色图像格式读取。imread()函数...原创 2021-09-13 17:00:26 · 871 阅读 · 3 评论 -
OpenCV基础---图像存储器(Mat类)
一 图像存储容器 学习图像处理首先要学会如何操作矩阵信息,在OpenCV中提供了一个Mat类用于存储矩阵数据。 Mat类用来保存矩阵类型的数据信息,包括向量,矩阵,灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。其中矩阵头中包含矩阵的尺寸、存储方法、地址和引用次数。矩阵头的大小是一个常数,不会随着矩阵尺寸的大小二改变。在绝大多数情况下,矩阵头大小远小于矩阵中数据量的大小,因此图像复制和传递过程中的主要开销是存放矩阵数据。1.创建Mat类cv...原创 2021-09-12 10:58:19 · 5533 阅读 · 2 评论