当前位置: 首页 > news >正文

OpenCV 在图像上绘制二维图形的类cv::plot::Plot2d

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

cv::plot::Plot2d 是 OpenCV 的 plot 模块中的一个类,用于在图像上绘制二维图形。它提供了便捷的方法来可视化数据,例如将数值数据绘制成折线图等,非常适合快速查看实验结果、调试算法或生成报告图表。

主要成员函数

  1. static Ptr create(InputArray dataX, InputArray dataY)

    功能:静态工厂方法,创建 Plot2d 实例。
    参数:
    dataX: X 轴数据点集合(可选,如果为空,则使用默认的索引作为 X 轴)。
    dataY: Y 轴数据点集合(必需)。
    返回:Ptrcv::plot::Plot2d 智能指针。
    示例:

cv::Mat yData = (cv::Mat_<float>({1, 2, 3, 4, 5}));
auto plot = cv::plot::Plot2d::create(cv::Mat(), yData);
  1. virtual void render(OutputArray _plotImage) const

    功能:渲染图形到指定的 cv::Mat 图像。
    参数:
    _plotImage: 输出图像,图形将会被绘制在此图像上。通常是一个空白图像(cv::Mat(height, width, CV_8UC3))。
    示例:

  cv::Mat plotImage(400, 600, CV_8UC3, cv::Scalar(255, 255, 255));plot->render(plotImage);cv::imshow("Plot", plotImage);cv::waitKey();
  1. void setMinX(double minX)

    功能:设置 X 轴最小值。
    参数:minX - 新的 X 轴最小值。

  2. void setMaxX(double maxX)

    功能:设置 X 轴最大值。
    参数:maxX - 新的 X 轴最大值。

  3. void setMinY(double minY)

    功能:设置 Y 轴最小值。
    参数:minY - 新的 Y 轴最小值。

  4. void setMaxY(double maxY)

    功能:设置 Y 轴最大值。
    参数:maxY - 新的 Y 轴最大值。

  5. void setPlotLineColor(Scalar plotLineColor)

    功能:设置绘制线条的颜色。
    参数:plotLineColor - 颜色(例如 cv::Scalar(255, 0, 0) 表示红色)。

  6. void setPlotBackgroundColor(Scalar plotBackgroundColor)

    功能:设置背景颜色。
    参数:plotBackgroundColor - 背景颜色。

  7. void setPlotTextColor(Scalar plotTextColor)

    功能:设置文本颜色(如轴标签)。
    参数:plotTextColor - 文本颜色。

  8. void setPlotGridColor(Scalar plotGridColor)

    功能:设置网格线颜色。
    参数:plotGridColor - 网格线颜色。

  9. void setShowGrid(bool showGrid)

    功能:是否显示网格线。
    参数:showGrid - 布尔值,true 显示网格线,false 不显示。

  10. void setPlotSize(int plotWidth, int plotHeight)

    功能:设置绘图区域大小。
    参数:
    plotWidth - 宽度。
    plotHeight - 高度。

使用示例


#include <opencv2/opencv.hpp>
#include <opencv2/plot.hpp>int main()
{// 准备数据cv::Mat xData = ( cv::Mat_< double >( { 0, 1, 2, 3, 4, 5 } ) );    // X 轴数据cv::Mat yData = ( cv::Mat_< double >( { 0, 1, 4, 9, 16, 25 } ) );  // Y 轴数据// 创建 Plot2d 对象auto plot = cv::plot::Plot2d::create( xData, yData );// 设置属性(可选)plot->setPlotLineColor( cv::Scalar( 255, 0, 0 ) );  // 红色线条plot->setShowGrid( true );                          // 显示网格线// 创建空白画布cv::Mat plotImage( 400, 600, CV_8UC3, cv::Scalar( 255, 255, 255 ) );// 渲染图形plot->render( plotImage );// 显示结果cv::imshow( "Plot", plotImage );cv::waitKey();return 0;
}

运行输出

在这里插入图片描述

http://www.dtcms.com/a/331462.html

相关文章:

  • 心灵笔记:沟通与协作
  • 搭建纯积分商城的关键注意事项
  • MySQL中的DML(二)
  • Spring基础面试题(三)
  • rtthread - ROMFS 的使用方式
  • 【自动驾驶】自动驾驶概述 ① ( 自动驾驶 与 无人驾驶 | 自动驾驶 相关岗位 及 技能需求 )
  • 网络安全应急响应
  • Java Stream API:让业务数据处理更优雅
  • 【120页PPT】人工智能与数字化转型的业财融合(附下载方式)
  • TDengine IDMP 基本功能(6. 无问智推)
  • Web攻防-业务逻辑篇APP隐私合规资源处理违规收集拒绝服务在线检测项目工具
  • 深度剖析!体育数据 API 及电竞数据 API 在体育电竞领域的核心地位
  • java动态代理机制I(初稿)
  • 职得AI简历-免费AI简历生成工具
  • C++ 排序指南
  • 7、C 语言数组进阶知识点总结
  • 解决SQL Server连接失败:Connection refused: connect
  • 力扣(LeetCode) ——225 用队列实现栈(C语言)
  • C++中的回调函数
  • C++中的内存管理(一)
  • BitDock——让你的Windows桌面变为Mac
  • 【ai写代码】lua-判断表是否被修改
  • Mysql基本使用语句(一)
  • [激光原理与应用-271]:理论 - 波动光学 - 电磁波谱,光是一种可视化的电磁波
  • 广义矩估计随机近似中1.2和2.1的差异
  • 获取iframe中canvas画面
  • 爬虫数据存储全攻略:从 Robots 协议到文件存储
  • C++11新特性深度解析
  • Linux软件下载菜单脚本
  • Effective C++ 条款41:理解隐式接口和编译期多态