使用OpenCV画折线图
使用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画折线图的更多相关文章
- python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
- SAS 画折线图PROC GPLOT
虽然最后做成PPT里的图表会被要求用EXCEL画,但当我们只是在分析的过程中,想看看数据的走势,直接在SAS里画会比EXCEL画便捷的多. 修改起来也会更加的简单,,不用不断的修改程序然后刷新EXCE ...
- Matplotlib学习---用matplotlib画折线图(line chart)
这里利用Jake Vanderplas所著的<Python数据科学手册>一书中的数据,学习画图. 数据地址:https://raw.githubusercontent.com/jakevd ...
- echars画折线图的一种数据处理方式
echars画折线图的一种数据处理方式 <!DOCTYPE html> <html> <head> <meta charset="utf-8&quo ...
- gnuplot画折线图
之前尝试用jfreechart画自定义横坐标的折线图或时序图,发现很复杂,后来改用gnuplot了. gnuplot在网上一搜就能找到下载地址. 安装完成后,主要是命令行形式的交互界面,至少比jfre ...
- 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 ...
- echarts入门基础,画折线图
注意:一定要自己引入echarts库 <!DOCTYPE html> <html> <head> <meta charset="UTF-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) ...
- Jquery画折线图、柱状图、饼图
1.今天做了一个折线图,首先需要导js文件.这里有一个demo:http://files.cnblogs.com/files/feifeishi/jquery_zhexiantubingtuzhuzh ...
随机推荐
- 8.1.2 Cursor 对象
游标Cursor也是sqlite3模块中比较重要的一个类,下面简单介绍下Cursor对象的常用方法. 1 execute(sql[,parameters]) 该方法用于执行一条SQL语句,下面的代码演 ...
- 混合了RBAC和ACL的权限系统(一) -- 用户组织结构
最近的工作是一个基础设计,打造一个基于RBAC和ACL的权限基础组件. 这个基础组件的特点是:同时混合了RBAC和ACL的认证方式,也就是说同时提供系统级别的授权(RBAC)和对象级别的授权(ACL) ...
- UVa - 12661 - Funny Car Racing
先上题目: 12661 Funny Car RacingThere is a funny car racing in a city with n junctions and m directed ro ...
- 同余方程 2012年NOIP全国联赛提高组
时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 求关于 x 同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入描述 Input Descriptio ...
- TSP服务商
1.何为TSP? TSP([1] Service Provider),在Telematics产业链居于核心地位,上接汽车.车载设备制造商.网络运营商,下接内容提供商.谁掌控了TSP,谁就能掌握Tele ...
- Hadoop2.2.0 注意事项
1.启动前必须把防火墙关了,要不然会导致nodemanager启动不了. 关闭防火墙:service iptables stop 永久关闭(重启后默认关闭):chkconfig iptables of ...
- Spring MVC Beginner's Guide--应该看第二次
第一遍,就差WEBFLOW知识点没过了.. 真的值得好好再看第二次呢.. 样例工程算是比较多的啦. 学到真的不少..
- Mybatis+0+null,小问题引发的血案
Mybatis在进行<if test="status != null and status != ''">判空操作时,假设status为0的时候,该推断条件的值为fal ...
- Eclipse搭建maven开发环境
上一篇学习了maven开发环境的搭建,而且手动编写了一个mavenproject,可是这样子效率非常低下.今天带大家学习在eclipse下搭建maven开发环境. 经常使用的maven命令 mvn c ...
- Lucene5学习之使用MMSeg4j分词器
分类:程序语言|标签:C|日期: 2015-05-01 02:00:24 MMSeg4j是一款中文分词器,详细介绍如下: 1.mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法( ...