当前位置:   article > 正文

Opencv打印显示Mat方法_cv::format

cv::format

Opencv打印Mat几种方法

1:使用CV:format函数

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

  1. static inline
  2. 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打印

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

  1. #include <stdio.h>
  2. #include "opencv2/opencv.hpp"
  3. #include "opencv2/highgui/highgui.hpp"
  4. #include "opencv2/imgproc/imgproc.hpp"
  5. using namespace cv;
  6. using namespace std;
  7. void main()
  8. {
  9. Mat M(2, 2, CV_8UC3, Scalar(110, 0, 255));
  10. cout << "L= (C)" << endl << format(M, Formatter::FMT_C) << endl << endl;
  11. cout << "L= (numpy)" << endl << format(M, Formatter::FMT_NUMPY) << endl << endl;
  12. cout << "L= (CSV)" << endl << format(M, Formatter::FMT_CSV) << endl << endl;
  13. cout << "L= (,)" << endl << format(M, Formatter::FMT_CSV) << endl << endl;
  14. cout << "L= (python)" << endl << format(M, Formatter::FMT_PYTHON) << endl << endl;
  15. }

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

  1. #include <stdio.h>
  2. #include "opencv2/opencv.hpp"
  3. #include "opencv2/highgui/highgui.hpp"
  4. #include "opencv2/imgproc/imgproc.hpp"
  5. using namespace cv;
  6. using namespace std;
  7. void main()
  8. {
  9. Mat M(2, 2, CV_8UC3, Scalar(110, 0, 255));
  10. cout << "M= " << endl << " " << M << endl << endl;
  11. }

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

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

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

  1. #include <stdio.h>
  2. #include "opencv2/opencv.hpp"
  3. #include "opencv2/highgui/highgui.hpp"
  4. #include "opencv2/imgproc/imgproc.hpp"
  5. using namespace cv;
  6. using namespace std;
  7. void main()
  8. {
  9. int sz[3] = { 2,2,2 };
  10. Mat L(3, sz, CV_8UC1, Scalar::all(12));
  11. printf("Dim: %d, data[0]: %d\n", L.dims, *L.datastart);
  12. const uchar* dataindex = L.datastart;
  13. int index = 0;
  14. while (dataindex != L.dataend)
  15. {
  16. printf("Index:%d, Data:%d\n", index, *dataindex);
  17. dataindex++;
  18. }
  19. }

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/942713
推荐阅读
相关标签
  

闽ICP备14008679号