前言:
数字图像在计算机内存中以矩阵形式存储,而Mat类是操作矩阵的类。
一、图像像素值的访问
cv::Mat image = cv::Mat(400,600,cv_8UC1); //weight=400,height=600,8unit单通道
uchar * data00 = image.ptr<uchar>(0); //data00是指向第1行第1个元素的指针
uchar * data10 = image.ptr<uchar>(1); //data10是指向第2行第1个元素的指针
uchar * data01 = image.ptr<uchar>(0)[1]; //data01是指向第1行第2个元素的指针
二、Mat类构造函数
#include<opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main() {
Mat image1; //创建一个空矩阵
Mat image2(6, 6, CV_8UC1); //创建一个6*6的单通道矩阵,默认填充值为205
Mat image3(Size(7, 7), CV_8UC3); //创建一个7*7的单通道矩阵,默认填充值为205
Mat image4(8, 8, CV_32FC2, Scalar(1, 3));//创建一个8*8的双通道矩阵,填充值分别为1、3
Mat image5(Size(9, 9), CV_8UC3, Scalar(1, 2, 3)); //创建一个9*9的三通道矩阵,填充值分别为1、2、3
Mat image6(image2);
cout << image1 << endl;
cout << image2 << endl;
cout << image3 << endl;
cout << image4 << endl;
cout << image5 << endl;
cout << image6 << endl;
cin.get();
}