文章选自:
一、 数据类型
建立矩阵必须要指定矩阵存储的数据类型,图像处理中常用的几种数据类型如下:包括数据位深度8位、32位,数据类型U:uchar、F:float型以及通道数C1:单通道、C3:三通道、C4:四通道。
我们可以通过载入图像来创建Mat类型矩阵
二、测试程序
cpp
void Samples::CreateMatrix()
{
//step1. 创建矩阵
cv::Mat a(cv::Size(3, 3), CV_8UC1); //创建单通道ucahr类型
cv::Mat b(cv::Size(3, 3), CV_32F); //创建Float类型
cv::Mat c = cv::Mat(cv::Size(3, 3), CV_8UC3); //3通道每个矩阵元素包含3个uchar值
cv::Mat d = cv::Mat(cv::Size(3, 3), CV_8UC4);//4通道每个矩阵元素包含3个uchar值
cout << "step1. 创建矩阵" << endl;
cout << "a = " << endl << a << endl << endl;
cout << "b = " << endl << b << endl << endl;
cout << "c = " << endl << c << endl << endl;
cout << "d = " << endl << d << endl << endl;
//step2. 初始化矩阵
cv::Mat mz = cv::Mat::zeros(cv::Size(3, 3), CV_8UC1); // 全零矩阵
cv::Mat mo = cv::Mat::ones(cv::Size(3, 3), CV_8UC1); // 全1矩阵
cv::Mat me = cv::Mat::eye(cv::Size(3, 3), CV_32FC1); // 对角线为1的对角矩阵
cout << "step2. 初始化矩阵" << endl;
cout << "mz = " << endl << mz << endl << endl;
cout << "mo = " << endl << mo << endl << endl;
cout << "me = " << endl << me << endl << endl;
}