OpenCV_Mat类对象常用属性值的获取方法

OpenCV_Mat类对象常用属性值的获取方法

目录

  • 01-获取矩阵的size(列数、行数)
  • 02-获取矩阵的type
  • 03-获取矩阵的通道数
  • 04-获取矩阵元素的数据类型
  • 05-获取矩阵的行数或列数

01-获取矩阵的size(列数、行数)

可利用Mat类的成员函数Mat::size()获取矩阵的矩阵的size(列数、行数)

示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include 
#include 

using namespace std;
using namespace cv;

int main()
{

	Mat A1 = Mat::zeros(2, 3, CV_8UC1);


	cout << "A1中的数据为:\n" << A1 << endl << endl;
	cout << "A1的size为:\n" << A1.size() << endl << endl;



	return(0);
}

运行结果如下图所示:
在这里插入图片描述
从上面的运行结果可以看出,通过函数size(),我们获取到了矩阵A1的列数和行数。

02-获取矩阵的type

在OpenCV中矩阵的每一种type用一个常数表示。
可以用Mat类的成员函数type()获取矩阵的type。
示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include 
#include 

using namespace std;
using namespace cv;

int main()
{

	Mat A1 = Mat::zeros(2, 3, CV_8UC1);
	Mat B1 = Mat::zeros(2, 3, CV_8UC2);

	cout << "A1的type为:\n" << A1.type() << endl << endl;
	cout << "B1的type为:\n" << B1.type() << endl << endl;

	return(0);
}

运行结果如下:
在这里插入图片描述
从上面的运行结果我们可以看出,CV_8UC1对应的type值为0,而CV_8UC2对应的type值为8。

03-获取矩阵的通道数

可以用Mat类的成员函数channels()获取矩阵的通道数。
示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include 
#include 

using namespace std;
using namespace cv;

int main()
{

	Mat A1 = Mat::zeros(2, 3, CV_8UC1);
	Mat B1 = Mat::zeros(2, 3, CV_8UC2);

	cout << "A1的通道数为:\n" << A1.channels() << endl << endl;
	cout << "B1的通道数为:\n" << B1.channels() << endl << endl;


	return(0);
}

运行结果如下:
在这里插入图片描述

04-获取矩阵元素的数据类型

可以利用Mat类的成员函数depth()获取矩阵元素的数据类型。
示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include 
#include 


int main()
{
	cv::Mat image1(2, 2, CV_8UC1, cv::Scalar(9));
	cv::Mat image2(2, 2, CV_8SC1, cv::Scalar(9));
	cv::Mat image3(2, 2, CV_16UC1, cv::Scalar(9));
	cv::Mat image4(2, 2, CV_16SC1, cv::Scalar(9));
	cv::Mat image5(2, 2, CV_32SC1, cv::Scalar(9));
	cv::Mat image6(2, 2, CV_32FC1, cv::Scalar(9));
	cv::Mat image7(2, 2, CV_64FC1, cv::Scalar(9));

	std::cout << "image1 depth:" << image1.depth() << std::endl << std::endl;
	std::cout << "image2 depth:" << image2.depth() << std::endl << std::endl;
	std::cout << "image3 depth:" << image3.depth() << std::endl << std::endl;
	std::cout << "image4 depth:" << image4.depth() << std::endl << std::endl;
	std::cout << "image5 depth:" << image5.depth() << std::endl << std::endl;
	std::cout << "image6 depth:" << image6.depth() << std::endl << std::endl;
	std::cout << "image7 depth:" << image7.depth() << std::endl << std::endl;

	return 0;
}

运行结果如下:
在这里插入图片描述

05-获取矩阵的行数或列数

成员属性rows和cols用于存储矩阵的行数或列数。

示例代码如下:

//出处:昊虹AI笔记网(hhai.cc)
//用心记录计算机视觉和AI技术

//博主微信/QQ 2487872782
//欢迎技术交流与咨询

//OpenCV版本 OpenCV3.0

#include 
#include 


int main()
{
	cv::Mat Image1(10, 8, CV_8UC1, cv::Scalar(5));
	// 矩阵的行数和列数获取
	std::cout << "Image1 row: " << Image1.rows << std::endl << std::endl;
	std::cout << "Image1 col: " << Image1.cols << std::endl << std::endl;

	return 0;
}

运行结果如下:
在这里插入图片描述

你可能感兴趣的:(图像处理原理,工具,代码,Mat)