【opencv练习03-Mat相关操作】

Mat相关的应用

    //1、构造函数
    Mat M(2,2,CV_8UC3,Scalar(0,0,255));
    //参数[2 2]——矩阵大小
    //CV_8UC3——元素类型
    //Scalar(0,0,255)——元素初始化
    //CV_8UC3——CV_[bit][符号][Type][channel]
    cout<<"构造函数创建矩阵 M = "<<endl<<M<<endl<<endl;

    //2、三维向量2*2*2
    int sz[3] = {2,2,2};
    Mat L(3,sz,CV_8UC(1), Scalar::all(0));
    cout<<"M = "<<endl<<L.dims<<endl<<endl; 

    //3、创建IplImage*的 Mat控制头 
    IplImage* img = cvLoadImage("YY01.jpg",1);
    Mat mtx(img);

    //4、Create() 方法                 //矩阵新尺寸!= 原尺寸时,才重新申请空间
    M.create(4,4,CV_8UC(2));            //8UC(2)每个元素两个量
    cout<<"Create() 方法创建矩阵 M = "<<endl<<" "<<M<<endl<<endl;

    //5、Matlab 风格初始化 zeros(),ones(),eye()
    Mat E = Mat::eye(4,4,CV_64F);
    cout<<"对角4*4矩阵 E = "<<endl<<" "<<E<<endl<<endl;

    Mat O = Mat::ones(4,4,CV_32F);
    cout<<"全1-4*4矩阵 O = "<<endl<<" "<<O<<endl<<endl;

    Mat Z = Mat::zeros(4,4,CV_8UC1);
    cout<<"0-4*4矩阵 Z = "<<endl<<" "<<Z<<endl<<endl;

    //6、初始化一个小的矩阵
    Mat C = (Mat_<double>(3,3)<<0,-1,0,-1,5,-5,0,-1,0);
    cout<<"结构元素C = "<<endl<<" "<<C<<endl<<endl;

    //7、为现有Mat对象 创建一个新的矩阵头,并复制it
    Mat RowClone = C.row(1).clone();
    cout<<"复制已存在矩阵 RowClone = "<<endl<<" "<<RowClone<<endl<<endl;

    //8、随机矩阵
    Mat RandMat(3,2,CV_8UC3);
    randu(RandMat,Scalar::all(0),Scalar::all(255));     //需给定随机值上下限
    cout<<"随机矩阵 RandMat = "<<endl<<" "<<RandMat<<endl<<endl;

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值