Opencv打印Mat几种方法

1:使用CV:format函数

使用Opencv 提供的format()API接口:

static inline
Ptr<Formatted> format(InputArray mtx, int fmt)

其中mtx为Mat 数据,fmt为所支持的打印打印风格,其参数可以为以下:

Formatter::FMT_C:C风格打印

Formatter::FMT_NUMPY: numpy风格打印

Formatter::FMT_CSV:逗号打印

Formatter::FMT_PYTHON: python打印

该方法仅支持二维打印,使用用例如下:

#include <stdio.h>
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"using namespace cv;
using namespace std;void main()
{Mat M(2, 2, CV_8UC3, Scalar(110, 0, 255));cout << "L= (C)" << endl << format(M, Formatter::FMT_C) << endl << endl;cout << "L= (numpy)" << endl << format(M, Formatter::FMT_NUMPY) << endl << endl;cout << "L= (CSV)" << endl << format(M, Formatter::FMT_CSV) << endl << endl;cout << "L= (,)" << endl << format(M, Formatter::FMT_CSV) << endl << endl;cout << "L= (python)" << endl << format(M, Formatter::FMT_PYTHON) << endl << endl;}

2:支持直接使用<<打印

#include <stdio.h>
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"using namespace cv;
using namespace std;void main()
{Mat M(2, 2, CV_8UC3, Scalar(110, 0, 255));cout << "M= " << endl << " " << M << endl << endl;
}

该方法也仅只能打印二维Mat

3:使用Mat中datastart和dataend循环遍历

可以使用Mat中的datastart和dataend进行二维或者多维打印 ,打印方法如下:

#include <stdio.h>
#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"using namespace cv;
using namespace std;void main()
{int sz[3] = { 2,2,2 };Mat L(3, sz, CV_8UC1, Scalar::all(12));printf("Dim: %d, data[0]: %d\n", L.dims, *L.datastart);const uchar* dataindex = L.datastart;int index = 0;while (dataindex != L.dataend){printf("Index:%d, Data:%d\n", index, *dataindex);dataindex++;}}

暂时使用到了这几种方法,后续补充其他打印方法

Opencv打印显示Mat方法相关推荐

  1. Java黑皮书课后题第6章:6.12(显示字符)使用下面的方法头,编写一个打印字符的方法。编写一个测试程序、打印从‘1‘到‘Z‘的字符,每行打印10个,字符之间使用一个空格字符隔开

    6.12(显示字符)使用下面的方法头,编写一个打印字符的方法.编写一个测试程序.打印从'1'到'Z'的字符,每行打印10个,字符之间使用一个空格字符隔开 题目 题目描述 破题 补充:从生成随机字符窥探 ...

  2. opencv多线程显示的问题和解决方法

    opencv多线程显示的问题和解决方法 1.问题描述 由于业务需求,需要在多线程中,使用OpenCV读取图片并显示,实现很简单,只需要调用python的threading创建线程,并在线程中显示图片即 ...

  3. MFC+opencv 显示mat图像

    VS2015+opencv3.0 MFC显示图片中方法三在使用时, 只能显示彩色图像,灰度图像显示有问题,经查找,是没有设置图像调色板的原因 图片控件宽度不为4的倍数 显示错误, 修改 代码 /*** ...

  4. opencv中的Mat图使用CDC显示

    需求:MFC显示opencv读取的Mat图 代码: 1.中间转化的函数: //************************************ // 函数名称: Show2DC // 访问权限 ...

  5. 为什么OpenCV4 “pkg-config --modversion opencv”显示“ No package ‘opencv‘ found”?解决方法!

    为什么OpenCV4 "pkg-config --modversion opencv"显示" No package 'opencv' found"?解决方法! ...

  6. Android 日志打印工具类 可显示打印所在的方法和行号

    Android 日志打印工具类 可显示打印所在的方法和行号.便于开发人员查看Log信息~~ package com.newland.util;import java.io.BufferedWriter ...

  7. 控制面板里打印服务器显示叹号,win7系统打印机显示叹号无法打印的解决方法...

    很多小伙伴都遇到过win7系统打印机显示叹号无法打印的困惑吧,一些朋友看过网上零散的win7系统打印机显示叹号无法打印的处理方法,并没有完完全全明白win7系统打印机显示叹号无法打印是如何解决的,今天 ...

  8. 设置打印机属性打印课件的方法——一页显示9张PPT幻灯片

    设置打印机属性打印课件的方法 1)通常情况下打印课件(PPT)方法(如图一) 文件->打印->打印内容->讲义 设置打印内容为讲义,每页6张或9张,但是打印出的效果都不是很好,一页上 ...

  9. 独家|OpenCV 1.1 Mat - 基本图像容器(附链接)

    翻译:陈之炎 校对:吴振东.林夕本文约3600字,建议阅读10分钟本文为大家系统地介绍了OpenCV官方教程. 写在前边 让读者朋友们较为系统地了解和学习OpenCV官方教程,数据派THU翻译组联合研 ...

最新文章

  1. 研究生应锻炼的24种能力
  2. 【记录】batch_size对cnn训练的影响
  3. 什么样的编程语言,竟然能融资 1.6 亿?
  4. linux grep和正则表达式
  5. 首发福利!全球第一开源ERP Odoo系统架构部署指南 电子书分享
  6. idea 报错javax/xml/bind/DatatypeConverter
  7. java的finally_java的finally用法
  8. 安装libsvm工具包
  9. python 字符集转换-灰常慢
  10. 使用ApexSQL Log 分析数据库在线日志及数据库备份
  11. @transactional可以用在controller层吗_石晶地板可以用在浴室吗?
  12. cisco3745做Easy ×××
  13. 会议直播方案 腾讯会议
  14. 阿里云成为云原生计算基金会金牌会员
  15. Atitit.注解解析(1)---------词法分析 attilax总结 java .net
  16. 【图像去噪】基于matlab非局部均值(NLM)滤波图像去噪【含Matlab源码 420期】
  17. Gephi教程-根据邻接矩阵构建复杂网络有向图
  18. 【第三方互联】7、注册成为新浪微博(sina)开发者
  19. java多线程的15种锁
  20. 2022hdu多校1C题题解

热门文章

  1. Eclipse中SVN过滤指定文件夹或文件下内容
  2. 结构与算法(04):排序规则与查找算法
  3. Matlab与OpenCV对应函数
  4. 表达式目录树(Expression)
  5. Red 编程语言 2019 开发计划:全速前进!
  6. linux: sort排序数据 grep搜索数据
  7. RHEL6.2手动封装rpm源码包安装星际译王
  8. 相对URI以及base的设置
  9. AptanaStudio3+PHP程序远程调试的方法和步骤
  10. OSPF路由协议概念及工作原理