OpenCv学习笔记(五)--创建Mat矩阵对象常用的几种方式

/*********************************************************************************************
程序功能:
        创建矩阵的几种方法
编写环境:
        OpenCv2.4.8+VS2010
地点时间:
        陕西师范大学 2016.4.25
作者信息:
        九月
**********************************************************************************************/
/********************************【头文件.命名空间包含部分】***********************************/
#include<opencv2/core/core.hpp>          //OpenCv的核心模块,包含OpenCv的基本数据机构和一些绘图函数
#include<opencv2/highgui/highgui.hpp>    //包含高层的图形用户界面,比如,namedWindow等函数
#include<iostream>


using namespace cv;
using namespace std;


/*****************************************【main()函数】**************************************/
int main(int argc,char** argv)
{
    //【1】使用Mat的构造函数---创建矩阵
	//Mat(int rows, int cols, int type, const Scalar& s);

	Mat M(2,2,CV_8UC3,Scalar(0,0,255));                    //指定矩阵的大小和类型,并用指定的数据进行填充
	cout<<"M="<<endl<<" "<<M<<endl;


	//【2】为已经存在的IplImage指针创建信息头
	//Mat(const IplImage* img, bool copyData=false);

	IplImage* img=cvLoadImage("D:\\scenery.png",CV_LOAD_IMAGE_COLOR);
	Mat mtx(img);                                           //convert Iplimage*--->Mat
	imshow("【1】IplImage*载入的原始图片",mtx);
	

	//【3】使用成员函数create()对Mat类对象进行初始化
	//【3】该方法不能为矩阵设置初始值,只是在改变尺寸时为矩阵数据重新分配内存
	M.create(4,4,CV_8UC2);                                  //创建一个4行4列,2个通道的矩阵
	cout<<"M="<<endl<<" "<<M<<endl<<endl;
	
	//【4】Matlab形式的初始化方式:zeros(),ones(),eyes()。使用以下方式指定尺寸和数据类型。
	Mat E=Mat::eye(4,4,CV_8UC1);                             //4行4列的对角矩阵
	cout<<"E="<<endl<<" "<<E<<endl<<endl;
	Mat Z=Mat::zeros(3,3,CV_8UC1);                           //3行3列的零矩阵
	cout<<"Z="<<endl<<" "<<Z<<endl<<endl;
	Mat O=Mat::ones(3,3,CV_32F);
	cout<<"O="<<endl<<" "<<O<<endl<<endl;                    //3行3列的单位矩阵

	waitKey(0);
	//system("pause");
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值