Opencv2.4学习::Mat矩阵的创建

 Mat类构造函数:

 类详细解释参见:https://blog.csdn.net/qq_37406130/article/details/78725406

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,类型为 type 的图像,并将所有元素初始化为值 s; 
5、Mat::Mat(Size size, int type, const Scalar& s) 
创建大小为 size,类型为 type 的图像,并将所有元素初始化为值 s; 
6、Mat::Mat(const Mat& m) 
将m赋值给新创建的对象,此处不会对图像数据进行复制,m和新对象共用图像数据,属于浅拷贝; 

7、Mat::Mat(int rows, int cols, int type, void* data, size_t step=AUTO_STEP) 
创建行数为rows,列数为col,类型为type的图像,此构造函数不创建图像数据所需内存,而是直接使用data所指内存,图像的行步长由 step指定。 
8、Mat::Mat(Size size, int type, void* data, size_t step=AUTO_STEP) 
创建大小为size,类型为type的图像,此构造函数不创建图像数据所需内存,而是直接使用data所指内存,图像的行步长由step指定。 
9、Mat::Mat(const Mat& m, const Range& rowRange, const Range& colRange) 
创建的新图像为m的一部分,具体的范围由rowRange和colRange指定,此构造函数也不进行图像数据的复制操作,新图像与m共用图像数据; 
10、Mat::Mat(const Mat& m, const Rect& roi) 
创建的新图像为m的一部分,具体的范围roi指定,此构造函数也不进行图像数据的复制操作,新图像与m共用图像数据。

#include<iostream>
#include"opencv2/imgproc/imgproc.hpp"
#include"opencv2/highgui/highgui.hpp"
using namespace cv;
void main()
{
	Mat image1;
	Mat image2(100, 100, CV_8UC3);//创建100*100 无符号8位 3通道矩阵
	image1.create(100, 100, CV_8UC1);//用create 创建100*100 无符号8位 单通道矩阵
	Mat image_white(100, 100, CV_8UC1, Scalar(255));//创建100*100白色矩阵
	Mat image_black(100, 100, CV_8UC1, Scalar(0));//创建100*100 黑色矩阵
	Mat zero_image3 = cv::Mat::zeros(100, 100, CV_8UC1);
	//用zeros 创建 100*100 无符号8位单通道  0矩阵
	Mat ones_image4 = cv::Mat::ones(100, 100, CV_8UC1);
	//用ones 创建100*100 无符号8位单通道  1矩阵
	namedWindow("zeros");
	namedWindow("ones");
	imshow("zeros", zero_image3);
	imshow("ones", ones_image4);
	imshow("white", image_white);
	imshow("black", image_black);
	waitKey(-1);
}

灰度图一般用8UC1来储存


Mat_类

https://blog.csdn.net/shenwanjiang111/article/details/54319630

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值