使用OpenCV画折线图
来源:互联网 发布:languages软件下载 编辑:程序博客网 时间:2024/05/16 14:15
使用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,zcv::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;}
最终的简单显示效果:
1 0
- 使用OpenCV画折线图
- 使用AChartEngine画折线图
- 使用html5画简单的折线图
- IOS使用Core-Plot画折线图
- 使用html5画简单的折线图
- IOS使用CGContextRef动态画折线图
- IOS使用CGContextRef动态画折线图
- 使用achartengine-1.1.0画折线图
- 使用achartengine显示折线图
- 使用achartengine绘制折线图
- angular使用echarts折线图
- 使用MPChart制作折线图
- 动态画折线图
- C# 画折线图
- gnuplot 画折线图
- AChartEngine画折线图
- iOS画折线图
- html5画折线图
- [最大流]UVa820 - Internet Bandwidth
- <h:commandLink>和<h:inputLink>的区别
- SQL Update多表联合更新的方法
- javascript操作json
- Spring MVC之@RequestMapping 详解
- 使用OpenCV画折线图
- java 设计模式
- wget
- 利用均差的牛顿插值法(Newton)
- 欢迎使用CSDN-markdown编辑器
- piwik
- CSDN start
- KMP 算法总结—字符串匹配算法
- java修饰符