使用OpenCV画直方图是一件轻松的事情,画折线图就没有那么Easy了,还是使用一个库吧:

   GraphUtils 源代码添加入工程

原文链接:http://www.360doc.com/content/14/0424/12/16961511_371674057.shtml

使用的画图代码:

//使用一个OpenCV的画图库
#include "GraphUtils.h" //显示文本里面的模式曲线
void CPicToolsDlg::OnBnClickedButtonShowpattern()
{ //打开目录文件
CFileDialog FileDlg(
TRUE, _T("*.pcd"), NULL,
OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY,
_T("*.txt|*.txt| *.pcd|*.pcd| All Files (*.*) |*.*||"), NULL);//选取约定! FileDlg.m_ofn.lpstrTitle = _T("打开待显示模式文本!!!"); // 打开文件对话框的标题名 if (FileDlg.DoModal() != IDOK) {
MessageBox("打开文件失败!!!请重新检测", "提示", 0);
return ;
} CString FilePath = FileDlg.GetPathName();
std::string MyFileName = FilePath; //读取文本到序列
std::vector<cv::Point3f > Seq(0);
this->readTxt2Seq(MyFileName,Seq); //显示文本为模式
//使用三维显示
this->showFeature3f(Seq ); return;
} //使用OpenCV显示三维序列
//暂时显示一维,三维的太困难了!
//显示一维曲线,最后显示多个,人工分析模式
bool CPicToolsDlg::showFeature3f(std::vector<cv::Point3f > &Seq )
{
//画一个曲线//使用三色桌布吧,同时画出x,y,z
cv::Mat CanvasM(480,800,CV_8UC3);
//CanvasM.
CanvasM= cv::Mat::zeros(480,800,CV_8UC3);//全黑背景
IplImage C =CanvasM;
cvNot(&C,&C);//反色
cv::Mat Canvas(&C);
CanvasM =Canvas.clone();//克隆 std::string BarName="特征的折线图";
int nArrayLength = Seq.size();
float *Array = new float[nArrayLength];
int delay_ms = 10; for (int i=0;i< nArrayLength;++i)
{
Array[i] = 479 -Seq[i].x ;
} drawLineGraph(BarName,Array, nArrayLength, delay_ms); return true;
} //使用空白画图板
int CPicToolsDlg::drawLineGraph(
std::string BarName,float *array, int nArrayLength, int delay_ms)
{
//使用画图工具
const char *name = BarName.c_str();
const float *arraySrc = array;
IplImage *background = NULL; //nArrayLength =100;
showFloatGraph(name, arraySrc, nArrayLength, delay_ms, background);
return 1;
} //读取文本浮点数到三元组 序列
bool CPicToolsDlg::readTxt2Seq(
std::string TxtName, std::vector<cv::Point3f > &Seq )
{ std::string TestTxt(TxtName); //
freopen(TestTxt.c_str(),"r",stdin);// 打开文件! //三元组,使用三元组逐个写入
float ViewValue,ViewValue2,ViewValue3;
cv::Point3f P(0,0,0);
Seq.resize(0);
while (std::cin)
{
std::cin >>ViewValue; // 利用 重定向输入 浮点值
std::cin >>ViewValue2;
std::cin >>ViewValue3;
P.x = ViewValue;
P.y = ViewValue2;
P.z = ViewValue3;
Seq.push_back(P);
} return true;
}

最终的简单显示效果:

使用OpenCV画折线图的更多相关文章

  1. python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)

    最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...

  2. SAS 画折线图PROC GPLOT

    虽然最后做成PPT里的图表会被要求用EXCEL画,但当我们只是在分析的过程中,想看看数据的走势,直接在SAS里画会比EXCEL画便捷的多. 修改起来也会更加的简单,,不用不断的修改程序然后刷新EXCE ...

  3. Matplotlib学习---用matplotlib画折线图(line chart)

    这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...

  4. echars画折线图的一种数据处理方式

    echars画折线图的一种数据处理方式 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...

  5. gnuplot画折线图

    之前尝试用jfreechart画自定义横坐标的折线图或时序图,发现很复杂,后来改用gnuplot了. gnuplot在网上一搜就能找到下载地址. 安装完成后,主要是命令行形式的交互界面,至少比jfre ...

  6. python的turtle模块画折线图

    代码如下: import turtle yValues = [10.0,7.4,6.4,5.3,4.4,3.7,2.6] def main(): t = turtle.Turtle() t.hidet ...

  7. echarts入门基础,画折线图

    注意:一定要自己引入echarts库 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" ...

  8. python用matplotlib画折线图

    折线图: import matplotlib.pyplot as plt y1=[10,13,5,40,30,60,70,12,55,25] x1=range(0,10) x2=range(0,10) ...

  9. Jquery画折线图、柱状图、饼图

    1.今天做了一个折线图,首先需要导js文件.这里有一个demo:http://files.cnblogs.com/files/feifeishi/jquery_zhexiantubingtuzhuzh ...

随机推荐

  1. nyoj_187_快速查找素数_201312042102

    快速查找素数 时间限制:1000 ms  |           内存限制:65535 KB 难度:3   描述 现在给你一个正整数N,要你快速的找出在2.....N这些数里面所有的素数.   输入 ...

  2. [转]C#操作SQL Server数据库

    转自:C#操作SQL Server数据库 1.概述 ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据库: 第二,建立SqlComman ...

  3. [Cypress] Test XHR Failure Conditions with Cypress

    Testing your application’s behavior when an XHR call results in an error can be difficult. The use o ...

  4. 最新版本号cocos2d&#173;2.0&#173;x&#173;2.0.2使用新资源载入策略!不再沿用-hd、-

     前段时间cocos2dx更新了最新版本号cocos2d­2.0­x­2.0.2.也从这个版本号開始对于资源载入与管理都改变了策略. 在之前的载入方式都是通过沿用与cocos2d-iphone一样 ...

  5. Android 的Recovery机制【转】

    本文转载自:http://blog.csdn.net/fengying765/article/details/38301895 Android 的Recovery机制 目录 1. 系统的启动模式 1 ...

  6. 将TensorFlow模型变为pb——官方本身提供API,直接调用即可

    TensorFlow: How to freeze a model and serve it with a python API 参考:https://blog.metaflow.fr/tensorf ...

  7. B1208 [HNOI2004]宠物收养所 平衡树||set (滑稽)

    这个题是一道splay裸题,但是我不太会写,所以用set直接水过去!!!哈哈哈哈,美滋滋. set总结: set是一个集合,然后里面没用重复的元素.里面有一些函数: begin()     ,返回se ...

  8. MySQL:常见错误01

    ylbtech-MySQL:常见错误01 1.返回顶部 1. [SQL]select * from product_product_tag aLEFT JOIN system_tag b on b.i ...

  9. this引用逃逸问题

    //this引用逃逸 // 1.构造器还未完成前,将自身this引用向外抛,使其他线程访问这个引用,进而访问到其未初始化的变量,造成问题 // 2.内部类访问外部类未初始化的成员变量 //3.多态继承 ...

  10. BZOJ 1877 拆点费用流

    思路: 呃  水题不解释 行么,, //By SiriusRen #include <queue> #include <cstdio> #include <cstring ...