使用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. 微信小程序·前端-锦囊

    ========================== flex[盒子]   display: flex; flex-direction: column; [从上到下排列]↓ justify-conte ...

  2. Java基础学习总结(73)——Java最新面试题汇总

    1.super()与this()的区别? this():当前类的对象,super父类对象. super():在子类访问父类的成员和行为,必须受类继承规则的约束 而this他代表当前对象,当然所有的资源 ...

  3. crontab定时任务安装、使用方法

    本文介绍下,在linux中安装crontab的方法,以及crontab的具体用法,有需要的朋友参考下. 这里使用yum方式安装crontab:  复制代码代码示例: [root@CentOS ~]# ...

  4. CDOJ 889 Battle for Silver

    Battle for Silver Time Limit: 2999/999MS (Java/Others)     Memory Limit: 65432/65432KB (Java/Others) ...

  5. hdu 4786 最小生成树与最大生成树

    /* 题意 :有一些边权值为1和0,判断是否存在一个生成树使得他的总权值为一个斐波那契数. 解法:建立一个最小生成树向里面加权值为1的边替换为0的边,保证原来的联通.因为权值为1,可直接求出最大生成树 ...

  6. Markdown 基本使用

    My First Markdown 标签(空格分隔): 未分类 # Markdown 11种基本语法## 设置标题在此输入正文标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置 ...

  7. nyoj_782_星期几?_201312071940

    星期几? 时间限制:500 ms  |           内存限制:65535 KB 难度:2   描述                      Acmer 小鱼儿 埋头ku算一道题 条件:已知给 ...

  8. nyoj_524_A-B Problem_201312012035

    A-B Problem 时间限制:1000 ms  |           内存限制:65535 KB 难度:3   描述 A+B问题早已经被大家所熟知了,是不是很无聊呢?现在大家来做一下A-B吧. ...

  9. eclipse上导入import git项目

    1.左上角File->import->git eclipse 可以从很多来源处import项目,项目来源可以使git/maven/general等. import来源可以看下面 2.点击g ...

  10. 微信获得access-token

    微信获得access-token RestTemplate template = new RestTemplate(); String appid = "aa"; String s ...