格式化输出,可输出的类型(OpenCV案例源码cout_mat.cpp解读)

格式化输出风格: OpenCV, matlab, python, numpy, csv 和 C 风格

可输出的类型:矩阵、点(二维、三维)、图、容器

复制代码
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
    //单位矩阵,主对角线是1
    Mat I = Mat::eye(4, 4, CV_64F);
    I.at<double>(1,1) = CV_PI;//第2行2列的值赋值为PI
    cout << "I = \n" << I << ";" << endl << endl;
    
    //
    Mat r = Mat(10, 3, CV_8UC3);//10*3的3通道矩阵
    randu(r, Scalar::all(0), Scalar::all(255));//元素被赋值[0,255)随机值
    cout << "默认风格= \n" << r << ";" << endl << endl;
    cout << "matlab风格= \n" << format(r, Formatter::FMT_MATLAB) << ";" << endl << endl;
    cout << "python风格= \n" << format(r, Formatter::FMT_PYTHON) << ";" << endl << endl;
    cout << "numpy风格= \n" << format(r, Formatter::FMT_NUMPY) << ";" << endl << endl;
    cout << "csv风格= \n" << format(r, Formatter::FMT_CSV) << ";" << endl << endl;
    cout << "c风格= \n" << format(r, Formatter::FMT_C) << ";" << endl << endl;

    //二维点
    Point2f p(5, 1);
    cout << "p = " << p << ";" << endl;

    //二维点对象的容器,20个点
    vector<Point2f> points(20);
    for (size_t i = 0; i < points.size(); ++i)
        points[i] = Point2f((float)(i * 5), (float)(i % 7));//横坐标是5的倍数,纵坐标是7的余数
    cout << "points = " << points << ";" << endl;

    //浮点型对象的容器,元素是1,2,3
    vector<float> v;
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
    cout << "shortvec = " << Mat(v) << endl;

    return 0;
}
复制代码

posted @   夕西行  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示