C++ OpenCV Mat类简介

前言:

数字图像在计算机内存中以矩阵形式存储,而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();

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章