当前位置:   article > 正文

OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)_opencv 输出mat 的类型

opencv 输出mat 的类型

首先是下面代码中将要使用的 r 矩阵的定义。需要注意,我们可以通过用 randu 函数产生的随机值来填充矩阵, 需要给定一个上限和下限来确保随机值在期望的范围内。

Mat r = Mat(2, 3, CV_8UC3);
randu(r, Scalar::all(0), Scalar::all(255));
  • 1
  • 2

1. OpenCV 默认格式

cout << "r [默认风格]is "<< endl << r << endl;
  • 1

输出格式如下:

r [默认风格]is 
[ 91,   2,  79, 179,  52, 205, 236,   8, 181;
 239,  26, 248, 207, 218,  45, 183, 158, 101]
  • 1
  • 2
  • 3

2. Python 格式

// OpenCV3 以上版本
cout << "r [Python风格]is "<< endl << format(r, Formatter::FMT_PYTHON)<< endl;
// OpenCV2 版本
cout << "r [Python风格]is "<< endl << format(r, "python")<< endl;
  • 1
  • 2
  • 3
  • 4

输出格式如下:

r [Python风格]is 
[[[ 91,   2,  79], [179,  52, 205], [236,   8, 181]],
 [[239,  26, 248], [207, 218,  45], [183, 158, 101]]]
  • 1
  • 2
  • 3

3. CSV 格式

// OpenCV3 以上版本
cout << "r [逗号风格]is "<< endl << format(r, Formatter::FMT_CSV)<< endl;
// OpenCV2 版本
cout << "r [逗号风格]is "<< endl << format(r, "csv")<< endl;
  • 1
  • 2
  • 3
  • 4

输出结果:

r [逗号风格]is 
 91,   2,  79, 179,  52, 205, 236,   8, 181
239,  26, 248, 207, 218,  45, 183, 158, 101
  • 1
  • 2
  • 3

4. NumPy 格式

// OpenCV3 以上版本
cout << "r [Numpy风格]is "<< endl << format(r, Formatter::FMT_NUMPY)<< endl;
// OpenCV2 版本
cout << "r [Numpy风格]is "<< endl << format(r, "numpy")<< endl;
  • 1
  • 2
  • 3
  • 4

输出结果:

r [Numpy风格]is 
array([[[ 91,   2,  79], [179,  52, 205], [236,   8, 181]],
       [[239,  26, 248], [207, 218,  45], [183, 158, 101]]], dtype='uint8')
  • 1
  • 2
  • 3

5. C 语言格式

// OpenCV3 以上版本
cout << "r [C 语言风格]is "<< endl << format(r, Formatter::FMT_C)<< endl;
// OpenCV2 版本
cout << "r [C 语言风格]is "<< endl << format(r, "C")<< endl;
  • 1
  • 2
  • 3
  • 4

输出结果:

r [C 语言风格]is 
{ 91,   2,  79, 179,  52, 205, 236,   8, 181,
 239,  26, 248, 207, 218,  45, 183, 158, 101}
  • 1
  • 2
  • 3

6. 完整代码

#include <iostream>
#include "opencv2/opencv.hpp"

using namespace cv;	
using namespace std;

int main()
{
	Mat r = Mat(2, 3, CV_8UC3);
	randu(r, Scalar::all(0), Scalar::all(255));
	cout << "r [默认风格]is "<< endl << r << endl;
	cout << "r [Python风格]is "<< endl << format(r, Formatter::FMT_PYTHON)<< endl;
	cout << "r [逗号风格]is "<< endl << format(r, Formatter::FMT_CSV)<< endl;
	cout << "r [Numpy风格]is "<< endl << format(r, Formatter::FMT_NUMPY)<< endl;
	cout << "r [C 语言风格]is "<< endl << format(r, Formatter::FMT_C)<< endl;
	
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/886775
推荐阅读
相关标签
  

闽ICP备14008679号