Opencv
LQTGO
慢慢来
展开
-
关于Mat的拷贝
// Mat is basically a class with two data parts: the matrix header and //a pointer to the matrix containing the pixel values #include <iostream> #include <highgui.h> using namespace std ; using namespace cv ; int main()转载 2020-09-27 17:04:40 · 364 阅读 · 0 评论 -
Opencv中Rect类
Rect类成员变量x、y、width、height,分别为左上角点的坐标和矩形的宽和高。如果创建一个Rect对象rect(100, 50, 50, 100)Rect rect(100, 50, 50, 100); 那么rect会有以下几个功能:rect.area(); //返回rect的面积 5000rect.size(); //返回rect的尺寸 [50 × 100]rect.tl(); //返回rect的左上顶点的坐标 [100, 50]rect.br(转载 2020-09-27 11:49:11 · 9034 阅读 · 0 评论 -
Mat的构造函数
然后我们看看Mat常用的构造函数:1、Mat::Mat()无参数构造方法;2、Mat::Mat(int rows, int cols, int type)创建行数为 rows,列数为 col,类型为 type 的图像;3、Mat::Mat(Size size, int type)创建大小为 size,类型为 type 的图像;4、Mat::Mat(int rows, int cols, int type, const Scalar& s)创建行数为 rows,列数为 col,类型为转载 2020-09-27 11:43:52 · 3200 阅读 · 0 评论 -
OpenCV学习之Size数据结构
Size数据结构经常被OpenCV用来表示尺寸,其成员为width和height,被用来表示矩阵或者图片的宽和高。SizeSize预定义个几个类型有:Size2i:整型intSize2l:int64Size2f:floatSize2d:double源代码如下:最后都是使用的 Size_类详细见:OpenCV中基本数据结构(3)_Size...转载 2020-09-27 11:11:52 · 2384 阅读 · 0 评论 -
opencv中 Mat的reshape函数
C++: Mat Mat::reshape(int cn, int rows=0) constcn: 表示通道数(channels), 如果设为0,则表示保持通道数不变,否则则变为设置的通道数。rows: 表示矩阵行数。 如果设为0,则表示保持原有的行数不变,否则则变为设置的行数。注意设置行数后,列数会自动调整,rowscolschannels()保持不变opencv3学习:reshape函数...转载 2020-09-04 11:18:14 · 3435 阅读 · 0 评论 -
Mat类中的rowRange和colRange
rowRange:创建一个新的矩阵头,取得指定行区间元素colRange:创建一个新的矩阵头,取得指定列区间元素Mat.rowRange(int x,int y)和Mat.rowRange(range(int x,int y)得到的结果一样,函数取的实际行数y-x,只取到范围的左边界(x),而不取右边界(y)。简单理解:rowRange(int x, int y) (其中y应小于等于行数,例如一个矩阵最大为5行,那么y最大为4) 的创建矩阵范围为从x行为首行开始,往后数y-x行。**例如:**转载 2020-07-23 17:39:26 · 832 阅读 · 0 评论 -
OpenCV中的Reshape
Mat::reshape( )只是在逻辑上改变矩阵的行列数或者通道数,没有任何的数据的复制,也不会增减任何数据,因此这是一个O(1)的操作,它要求矩阵是连续的。Mat::reshape(int cn, int rows=0 const)cn:目标通道数,如果是0则保持和原通道数一致;rows:目标行数,同上是0则保持不变;改变后的矩阵要满足 rows×cols×channels 跟原数组相等,所以如果原来矩阵是单通道3×3的,调用Reshape(0,2)是会报错的,因为3×3×1不能被2×1整转载 2020-07-23 10:19:48 · 464 阅读 · 0 评论 -
Mat中的元素类型
一般使用的灰度图像元素是8位的uchar型(注意不是无符号整型,而是无符号字符型。元素值0~255),自定义Mat矩阵时,推荐使用8位无符号字符型,即CV_8U、CV_8UC3。再说一遍,条件反射式的记住:一般见到的Mat的元素是8位无符号字符型,不是8位无符号整型。【元素类型】CV_8U(即CV_8UC1)、CV_8UC3、CV_32S、CV_32F等,16、64位用的少本文不讨论。以CV_8UC3举例其中:8表示深度值为8位 (单通道中表示每个元素是8位。3通道表示每个元素中每个通道是8位)原创 2020-07-22 15:06:20 · 660 阅读 · 0 评论 -
FileStorage类的数据存取操作
FileStorage类的数据存取操作转载 2020-07-11 17:34:07 · 1130 阅读 · 1 评论 -
掩膜操作实现RGB图像对比度调整及对通道的理解
原理:红色是中心像素,从上到下,从左到右对每个像素做同样的处理操作,得到最终结果就是对比度提高之后的输出图像Mat对象注意:对于三通道的掩膜,是对于每一个通道进行操作,注意是颜色相同的通道 进行加减而且要避免边界不能做运算的情况,所以起始从通道数3开始,截至提前通道数3,左右减1都是跳过通道数3(nchannel)算法图解:RGB图像结构:完整代码:在这里插入代码片...原创 2020-05-29 16:54:08 · 909 阅读 · 1 评论 -
Opencv练习--单应矩阵
单应矩阵的讲解结合《视觉SLAM十四讲》和计算机视觉life公众号的文章《从零开始一起学习SLAM | 神奇的单应矩阵》:https://mp.weixin.qq.com/s/lx9P45fVniccrz5c68wPyw便非常清楚,下面主要给出经典使用案例—虚拟广告牌 的代码及注释#include <opencv2/opencv.hpp>using namespace cv...原创 2020-04-26 17:34:50 · 403 阅读 · 0 评论