美文网首页
002OpenCV笔记-MAT

002OpenCV笔记-MAT

作者: 赌二八定律 | 来源:发表于2020-02-23 12:08 被阅读0次
获取一张图片大概三种方式

1.Mat Srciag = imread("D:\test.jpg");//直接读取硬盘的文件
2.VideoCapture cap(0);//从视频或者摄像头读取一帧图片
3.Mat Srcimg(Size(5,5),CV_8UC3,Scalar(100,50,20));//MAT构造函数创建一个

Mat属性
Mat Srciag = imread("D:\\test.jpg");
cout << Srciag.cols << endl;//列
cout << Srciag.rows << endl;//行
cout << Srciag.size() << endl;//尺寸
cout << Srciag.type() << endl;//类型
cout << Srciag.channels() << endl;//通道
cout << Srciag<< endl;//显示图片所有的像素点
Srcimg.at<uchar>(1, 2) = 30;//修改某个像素点的值
Srcimg.at<Vec3b>(1, 2) = Vec3b(88,77,66);//修改三通道像素点的值
Srcimg.at<Vec3b>(1, 2)[1] = 99;//修改三通道某一具体值
resize(Srcimg, Srcimg, Size(6, 6));//图像尺寸修改为6乘6
resize(Srcimg, Srcimg, Srcimg.size()*2);//图像放大为2倍
resize(srcImage, srcImage, Size(srcImage.cols / 4, srcImage.rows / 4)); //缩小
Srcimg = Srcimg * 2;//每个像素点都乘以2
imshow("原图",Srciag);//展示原图
imshow("原图",Srciag.t());//旋转图片再展示
修改某个像素点的值
修改三通道像素点的值
修改三通道某一具体值
Mat和IpIImage

1.Mat对象OpenCV2.0之后引进的图像数据结构、自动分配内存、不存在内存泄漏的问题,是面向对象的数据结构。分了两个部分,头部与数据部分
2.IplImage是从2001年OpenCV发布之后就一直存在,是C语言风格的数据结构,需要开发者自己分配与管理内存,对大的程序使用它容易导致内存泄漏问题

Mat构造函数

Mat M(2,2,CV_8UC3, Scalar(0,0,255))
其中前两个参数分别表示行(row)跟列(column)、
第三个CV_8UC3中的8表示每个通道占8位、
U表示无符号、C表示Char类型、3表示通道数目是3,
第四个参数是向量表示初始化每个像素值是多少,向量长度对应通道数目一致

相关文章

网友评论

      本文标题:002OpenCV笔记-MAT

      本文链接:https://www.haomeiwen.com/subject/hycdfhtx.html