Opencv_C++学习笔记
文章平均质量分 91
opencv学习笔记
晓纪同学
快乐创造价值
展开
-
Opencv-C++笔记 (19) : 分水岭图像分割
分水岭分割 opencv原创 2023-11-28 22:46:00 · 2070 阅读 · 0 评论 -
Opencv-C++笔记 (18) : 轮廓和凸包
首先选择Y方向最低的点作为起始点p0。从p0开始极坐标扫描,依次添加p1….pn(排序顺序是根据极坐标的角度大小,逆时针方向)。对每个点pi来说,如果添加pi点到凸包中导致一个左转向(逆时针方法)则添加该点到凸包,反之如果导致一个右转向(顺时针方向)删除该点从凸包中。InputArray points,// 输入候选点,来自findContoursOutputArray hull,// 凸包bool clockwise,// default true, 顺时针方向。原创 2023-08-29 18:17:02 · 1876 阅读 · 0 评论 -
Opencv-C++笔记 (17) : 模板匹配
通过得到的结果我们发现我们的模板匹配好像匹配区域与模板的尺寸是一致的,由此很容易产生误差,或是得到并不理想的区域,而在实际生活中,由于待测图像与摄像头之间的距离的变换,模板的大小因素的影响,若是想要得到较好的匹配结果,则需要我们实现自适应尺寸的模板匹配;由此,我们开始进行自适应尺寸的模板匹配,载入的模板图像,另其进入循环,每次循环缩放一定的比例,在进行模板匹配,最终我们得到了不同比例下的ROI区域,对所有的ROI区域与我们的模板图片进行相似度的比较,选出相似度最高的匹配图像,同时获得最佳的匹配比例;原创 2023-08-15 13:16:02 · 2396 阅读 · 0 评论 -
Opencv-C++笔记 (16) : 几何变换 (图像的翻转(镜像),平移,旋转,仿射,透视变换)
opencv原创 2023-08-04 17:44:15 · 3868 阅读 · 1 评论 -
Opencv-C++笔记 (15) : 像素重映射 与 图像扭曲
opencv原创 2023-08-04 15:07:06 · 1460 阅读 · 0 评论 -
Opencv-C++笔记 (14) : 霍夫变换(直线、圆)
霍夫变换 圆 直线原创 2023-08-04 14:46:50 · 1725 阅读 · 0 评论 -
Opencv-C++笔记 (13) : opencv-图像卷积一(均值、中值、高斯、双边滤波)与 边缘处理
头文件 quick_opencv.h:声明类与公共函数public ://自定义掩膜运算 void edge_process_Demo(Mat & image1);主函数调用return - 1;waitKey(0);return 0;charvoid filter2D(InputArray src , 输入图像。原创 2023-07-24 14:11:59 · 1732 阅读 · 0 评论 -
Opencv-C++笔记 (12) : opencv-仿射变化
介绍完图像的缩放和翻转后,接下来将要介绍图像的旋转,但是在OpenCV4中并没有专门用于图像旋转的函数,而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确定旋转角度和旋转中心,之后确定旋转矩阵,最终通过仿射变换实现图像旋转。原创 2023-06-19 17:53:06 · 1486 阅读 · 1 评论 -
Opencv-C++笔记 (11) : opencv-图像二值化与LUB查找表
我们在上一节程序中生成了一张只有黑色和白色的图像,这种“非黑即白”的图像像素的灰度值无论在什么数据类型中只有最大值和最小值两种取值,因此称其为二值图像。二值图像色彩种类少,可以进行高度的压缩,节省存储空间,将非二值图像经过计算变成二值图像的过程称为图像的二值化。在OpenCV4中提供了threshold()和adaptiveThreshold()两个函数用于实现图像的二值化,我们首先介绍threshold()函数的使用方法,该函数的函数原型在代码清单3-17中给出。原创 2023-06-19 15:37:40 · 1906 阅读 · 0 评论 -
Opencv-C++笔记 (10) : opencv-图像像素计算
该函数用来求取图像矩阵的每个通道的平均值,函数的第一个参数用来输入待求平均值的图像矩阵,其通道数目可以在1到4之间。该函数的第一个参数与前面mean()函数第一个参数相同,都可以是1-4通道的图像,不同之处在于该函数没有返回值,图像的均值和标准方差输出在函数的第二个和第三个参数中,区别于mean()函数,用于存放平均值和标准方差的是Mat类型变量,变量中的数据个数与第一个参数通道数相同,如果输入图像只有一个通道,该函数求取的平均值和标准方差变量中只有一个数据。maxVal:图像或者矩阵中的最大值。原创 2023-06-16 18:00:12 · 3368 阅读 · 0 评论 -
Opencv-C++笔记 (9) : opencv-多通道分离和合并
程序中用两种函数原型分别分离了RGB图像和HSV图像,为了验证merge ()函数可以合并多个通道不相同的图像,程序中分别用两种函数原型合并了多个不同通道的图像,合并后图像的通道数为5,不能通过imshow()函数显示,我们用Image Watch插件查看了合并的结果。这里需要说明的是,用于合并的图像并非都是单通道的,也可以是多个通道数目不相同的图像合并成一个通道更多的图像,虽然这些图像的通道数目可以不相同,但是需要所有图像具有相同的尺寸和数据类型。0通道的单通道图像,变成了2通道的单通道图像。原创 2023-06-16 17:38:38 · 2277 阅读 · 0 评论 -
Opencv-C++笔记 (8) : opencv-颜色模型与转换
彩色电视机需要三个通道的数据才能显示彩色,而黑白电视机只需要一个通道的数据即可,因此为了使视频信号能够兼容彩色电视与黑白电视,将RGB编码方式转变成YUV的编码方式,其Y通道是图像的亮度,黑白电视只需要使用该通道就可以显示黑白视频图像,而彩色相机通过将YUV编码转成RGB编码方式,便可以在彩色电视种显示彩色图像,较好的解决了同一个视频信号兼容不同类型电视的问题。常用的RGB模型转成灰度图的方式如式中所示。Lab颜色模型弥补了RGB模型的不足,是一种设备无关的颜色模型,是一种基于生理特征的颜色模型。原创 2023-06-16 16:43:39 · 1283 阅读 · 0 评论 -
Opencv-C++笔记 (7) : opencv-文件操作XML和YMAL文件
除了图像数据之外,有时程序中的尺寸较小的Mat类矩阵、字符串、数组等数据也需要进行保存,这些数据通常保存成XML文件或者YAML文件。本小节中将介绍如何利用OpenCV4中的函数将数据保存成XML文件或者YAML文件以及如何读取这两种文件中的数据。XML是一种元标记语言,所谓元标记就是使用者可以根据自身需求定义自己的标记,例如可以用、等标记来定义数据的含义,例如用24来表示age数据的数值为24。原创 2023-06-16 16:08:34 · 1980 阅读 · 0 评论 -
Opencv-C++笔记 (6) : opencv-图片和视频操作
不过需要说明的是,该函数能否读取文件数据与扩展名无关,而是通过文件的内容确定图像的类型,例如将一个扩展名由png修改成exe时,该函数一样可以读取该图像,但是将扩展名exe改成png,该函数不能加载该文件。该函数的第一个参数是声明窗口的名称,用于窗口的唯一识别,第二个参数是声明窗口的属性,主要用于设置窗口的大小是否可调、显示的图像是否填充满窗口等,具体可选择的参数及含义在表2-4中给出,默认情况下,函数加载的标志参数为“WINDOW_AUTOSIZE。该函数会根据图像的深度将其缩放,具体缩放规则为:。原创 2023-06-16 14:38:45 · 3289 阅读 · 1 评论 -
Opencv-C++笔记 (5) : opencv-形态学
除了使用常规的规则结构元素,我们也可以自定义结构元素。下面使用Mat类型的构造函数创建一个3×3十字型的结构元素// 创建自定义结构元素 unsigned char m [ 9 ] = {//创建自定义矩阵element1 //显示该结构元素 int nr = element1 . rows;j < nr;i ++) {char// 创建自定义结构元素 unsigned char m [ 9 ] = {原创 2023-06-16 10:48:50 · 1817 阅读 · 0 评论 -
Opencv-C++笔记 (4) : opencv中MAT 图片的访问
然而,若图像再行上不需要进行数据补齐,则一幅图像可以看作是一个一维数组,cv::Mat类提供的一个isContinuous函数以检测图像是否采用数据补齐,若没有采用数据补齐,则返回true.提示:OpenCV中的彩色图像的通道排列不是RGB,而是BGR,所以outputImage.at(i,j)[0]代表的是该点的B分量。at方法:cv::Mat中的at(x,y)函数模版用来操作指定位置的矩阵元素,在使用时需要指定函数返回的数据类型。类似于STL库中的用法,熟悉C++的读者应该对于STL库比较清楚。原创 2023-06-15 17:47:38 · 1566 阅读 · 0 评论 -
Opencv-C++笔记 (3) : opencv的库介绍以及和C++对接转换
其解释如下:[features2d]: 也就是Features2D, 2D功能框架 ,包含如下内容特征检测和描述特征检测器(Feature Detectors)通用接口描述符提取器(Descriptor Extractors)通用接口描述符匹配器(Descriptor Matchers)通用接口通用描述符(Generic Descriptor)匹配器通用接口关键点绘制函数和匹配功能绘制函数运动分析期望最大化直方图平面细分(C API)特征检测和描述(Feature Detection an原创 2023-06-15 17:30:43 · 3714 阅读 · 0 评论 -
Opencv-C++笔记 (2) : opencv的矩阵操作
这个混杂(“scrambled”)矩阵的特征值将和真正的协方差矩阵的特征值匹配,真正的特征向量可以很容易的从混杂 (“scrambled”)协方差矩阵的特征向量中计算出来。或者如果协方差矩阵是部分计算出来的 - 倘若这样, avg 不是输入向量的子集的平均值,而是整个集合的平均向量。目前这个函数比函数 cvSVD 要慢,精确度要低, 如果已知 A 是正定的,(例如, 它是一个协方差矩阵), 它通常被交给函数 cvSVD 来计算其特征值和特征向量,尤其是在不需要计算特征向量的情况下。原创 2023-05-26 17:59:06 · 3347 阅读 · 0 评论 -
Opencv-C++笔记 (1) : opencv的数据结构
opencv数据结构原创 2023-05-26 15:14:35 · 891 阅读 · 0 评论