C++ OpenCV Mat类简介

前言:

数字图像在计算机内存中以矩阵形式存储,而Mat类是操作矩阵的类。

一、图像像素值的访问

cv::Mat image = cv::Mat(400,600,cv_8UC1); //weight=400,height=600,8unit单通道
uchar * data00 = image.ptr(0);    //data00是指向第1行第1个元素的指针
uchar * data10 = image.ptr(1);    //data10是指向第2行第1个元素的指针
uchar * data01 = image.ptr(0)[1]; //data01是指向第1行第2个元素的指针

二、Mat类构造函数

#include
#include 
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();

}

 

你可能感兴趣的:(C++)