随笔分类 -  OpenCV

摘要:在OpenCV 4中并没有专门用于图像旋转的函数,而是通过图像的仿射变换实现图像的旋转。实现图像的旋转首先需要确定旋转角度和旋转中心,之后确定旋转矩阵,最终通过仿射变换实现图像旋转。针对这个流程,OpenCV 4提供了getRotationMatrix2D()函数用于计算旋转矩阵和warpAffin 阅读全文
posted @ 2023-04-10 16:11 夏蝉沐雪 阅读(91) 评论(0) 推荐(0) 编辑
摘要:前面介绍的阈值比较方法中只有一个阈值,如果需要与多个阈值进行比较,就需要用到显示查找表(Look-Up-Table,LUT)。LUT查找表简单来说就是一个像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。例如我们有一个长度为5的存放字符的数组,LUT查找表就是通过这个数 阅读全文
posted @ 2023-04-09 13:40 夏蝉沐雪 阅读(201) 评论(0) 推荐(0) 编辑
摘要:threshold()函数 代码清单3-17 threshold()函数原型 1. double cv::threshold(InputArray src, 2. OutputArray dst, 3. double thresh, 4. double maxval, 5. int type 6. 阅读全文
posted @ 2023-04-09 13:28 夏蝉沐雪 阅读(185) 评论(0) 推荐(0) 编辑
摘要:1、两张图像的比较运算 OpenCV 4中提供了求取两张图像每一位像素较大或者较小灰度值的max()、min()函数,这两个函数分别比较两个图像中每一位元素灰度值的大小,保留较大(较小)的灰度值,这两个函数的函数原型在代码清单3-13中给出。 代码清单3-13 max()和min()函数原型 1. 阅读全文
posted @ 2023-04-09 13:18 夏蝉沐雪 阅读(122) 评论(0) 推荐(0) 编辑
摘要:1、寻找图像最值 代码清单3-7 minMaxLoc()函数原型 1. void cv::minMaxLoc(InputArray src, 2. double * minVal, 3. double * maxVal = 0, 4. Point * minLoc = 0, 5. Point * m 阅读全文
posted @ 2023-04-09 13:10 夏蝉沐雪 阅读(109) 评论(0) 推荐(0) 编辑
摘要:在图像颜色模型中不同的分量存放在不同的通道中,如果我们只需要颜色模型的某一个分量,例如只需要处理RGB图像中的红色通道,可以将红色通道从三通道的数据中分离出来再进行处理,这种方式可以减少数据所占据的内存,加快程序的运行速度。同时,当我们分别处理完多个通道后,需要将所有通道合并在一起重新生成RGB图像 阅读全文
posted @ 2023-04-09 12:55 夏蝉沐雪 阅读(145) 评论(0) 推荐(0) 编辑
摘要:本小节中将介绍几种OpenCV 4中能够互相转换的常见的颜色模型,例如RGB模型、HSV模型、Lab模型、YUV模型以及GRAY模型,并介绍这几种模型之间的数学转换关系,以及OpenCV 4中提供的这几种模型之间的变换函数。 1、RGB颜色模型 RGB颜色模型的命名方式是采用三种颜色的英文首字母组成 阅读全文
posted @ 2023-04-09 11:30 夏蝉沐雪 阅读(441) 评论(0) 推荐(0) 编辑
摘要:除了图像数据之外,有时程序中的尺寸较小的Mat类矩阵、字符串、数组等数据也需要进行保存,这些数据通常保存成XML文件或者YAML文件。本小节中将介绍如何利用OpenCV 4中的函数将数据保存成XML文件或者YAML文件以及如何读取这两种文件中的数据。XML是一种元标记语言,所谓元标记就是使用者可以根 阅读全文
posted @ 2023-04-09 10:52 夏蝉沐雪 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1、视频数据读取 虽然视频文件是由多张图片组成的,但是imread()函数并不能直接读取视频文件,需要由专门的视频读取函数进行视频读取,并将每一帧图像保存到Mat类矩阵中,代码清单2-27中给出了VideoCapture类在读取视频文件时的构造方式。 代码清单2-27 读取视频文件VideoCapt 阅读全文
posted @ 2023-04-09 10:43 夏蝉沐雪 阅读(203) 评论(0) 推荐(0) 编辑
摘要:1、图像读取函数imread() 代码清单2-24 imread()函数的原型 cv::Mat cv::imread(const String & filename, int flags=IMREAD_COLOR ) filename:需要读取图像的文件名称,包含图像地址、名称和图像文件扩展名 fl 阅读全文
posted @ 2023-04-08 22:37 夏蝉沐雪 阅读(166) 评论(0) 推荐(0) 编辑
摘要:1、Mat类常用属 属性 作用 cols 矩阵的列数 rows 矩阵的行数 step 以字节为单位的矩阵的有效宽度 elemSize() 每个元素的字节数 total() 矩阵中元素的个数 channels() 矩阵的通道数 2、通过at方法读取Mat类矩阵中的元素 通过at方法读取矩阵元素分为针对 阅读全文
posted @ 2023-04-08 15:27 夏蝉沐雪 阅读(172) 评论(0) 推荐(0) 编辑
摘要:在进行数据处理时需要对数据进行加减乘除运算,Mat类变量支持矩阵的加减乘除运算,代码清单如2-17 代码清单2-17 Mat类的加减法运算 cv::Mat a = (cv::Mat_<int>(3, 3) << 1, 2, 3, 4, 5, 6, 7, 8, 9); cv::Mat b = (cv: 阅读全文
posted @ 2023-04-07 17:59 夏蝉沐雪 阅读(62) 评论(0) 推荐(0) 编辑
摘要:一、Mat类的构造 1、利用默认构造函数 通过代码清单2-4,利用默认构造函数构造了一个Mat类,这种构造方式不需要输入任何的参数,在后续给变量赋值的时候会自动判断矩阵的类型与大小,实现灵活的存储,常用于存储读取的图像数据和某个函数运算输出结果。 代码清单2-4 默认构造函数使用方式 cv::Mat 阅读全文
posted @ 2023-04-07 17:10 夏蝉沐雪 阅读(463) 评论(0) 推荐(0) 编辑
摘要:Mat类用来保存矩阵类型的数据信息,包括向量、矩阵、灰度或彩色图像等数据。Mat类分为矩阵头和指向存储数据的矩阵指针两部分。矩阵头中包含矩阵的尺寸、存储方法、地址和引用次数等。矩阵头的大小是一个常数,不会随着矩阵尺寸大小而改变。在绝大多数情况下矩阵头大小远小于矩阵中数据量的大小,因此图像复制和传递过 阅读全文
posted @ 2023-04-07 16:40 夏蝉沐雪 阅读(131) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示