ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

OpenCV学习(12)

2022-01-15 19:34:26  阅读:154  来源: 互联网

标签:12 Mat opencv 学习 OpenCV Scalar using include cv


基本图像容器Mat的用法(3):

opencv中的格式化输出方法;

OpenCV提供了风格各异的格式化输出方法,这里将对这些方法一一进行演示和列举。
首先是下面代码中将要使用的r矩阵的定义。需要注意,我们可以通过用randu()函数产生的随机值来填充矩阵,需要给定一个上限和下限来确保随机值在期望的范围内。
 

Mat r = Mat(10, 3, CV_8UC3);
randu(r,Scalar::all(0),Scalar::all(255));


初始化完r矩阵,下面便开始对输出风格的讲解。

①风格一,opencv默认风格

代码如下:

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>//opencv highgui 头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv 图像处理头文件
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat r = Mat(10, 3, CV_8UC3);
	randu(r,Scalar::all(0),Scalar::all(255));
	cout << "r (opencv默认风格) = " << endl << " " << r <<";" << endl << endl;
	return 0;
}

运行结果:

②风格二,Python 风格

代码如下(opencv3版):

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>//opencv highgui 头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv 图像处理头文件
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat r = Mat(10, 3, CV_8UC3);
	randu(r,Scalar::all(0),Scalar::all(255));
	cout << "r (Python风格) = " << endl << " " << format(r,Formatter::FMT_PYTHON) << ";" << endl << endl;
	return 0;
}

 运行结果:

 ③风格三,逗号分隔风格

代码如下(opencv3版):

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>//opencv highgui 头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv 图像处理头文件
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat r = Mat(10, 3, CV_8UC3);
	randu(r,Scalar::all(0),Scalar::all(255));
	cout << "r (逗号分隔风格) = " << endl << " " << format(r,Formatter::FMT_CSV) << ";" << endl << endl;
	return 0;
}

运行结果:

④风格四,Numpy

 代码如下(opencv3版):

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>//opencv highgui 头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv 图像处理头文件
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat r = Mat(10, 3, CV_8UC3);
	randu(r,Scalar::all(0),Scalar::all(255));
	cout << "r (Numpy风格) = " << endl << " " << format(r,Formatter::FMT_NUMPY) << ";" << endl << endl;
	return 0;
}

运行结果:

 ⑤风格五,c语言风格

 代码如下(opencv3版):

#include<opencv2/opencv.hpp>
#include <opencv2/core/utils/logger.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>//opencv highgui 头文件
#include<opencv2/imgproc/imgproc.hpp>//opencv 图像处理头文件
#include <opencv2/core/utils/logger.hpp>
#include<iostream>
using namespace std;
using namespace cv;//包含cv命名空间
int main()
{
	cv::utils::logging::setLogLevel(utils::logging::LOG_LEVEL_SILENT);//控制台不在输出日志文件
	Mat r = Mat(10, 3, CV_8UC3);
	randu(r,Scalar::all(0),Scalar::all(255));
	cout << "r (c语言风格) = " << endl << " " << format(r,Formatter::FMT_C) << ";" << endl << endl;
	return 0;
}

运行结果:

标签:12,Mat,opencv,学习,OpenCV,Scalar,using,include,cv
来源: https://blog.csdn.net/m0_53123717/article/details/122514157

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有