使用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 ...
随机推荐
- hdu 5652
India and China Origins Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/ ...
- 1.2 Java“白皮书”的关键术语
Java的设计者已经编写了颇有影响力的“白皮书”,来解释设计的初衷以及完成的情况,并且发布了一个简短的摘要.这个摘要用下面11个关键术语进行组织: 简单性 面向对象 分布式 健壮性 安全性 体 ...
- Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置、桥优先级、根桥选举、根端口、路径开销、边缘端口)
>Huawei-R&S-网络工程师实验笔记20190607-STP生成树协议(基本配置.桥优先级.根桥选举.根端口.路径开销.边缘端口) >>实验开始,先上拓扑图参考: &l ...
- C#关键字详解第四节
位 Unicode 字符 char在C#中与C语言不同,他表示的是16位无符号进制的数,在计算机中他是被用来存储字符但是他只能用来存 储一个文字,与string不同string可以存储多个文字或字符, ...
- ssh_整合总结
开场白:首先,我先帮大家整理一下思路 准备: 数据库,表,数据 jar 包准备 Hibernate 基本jar 包 C3p0 数据库连接池 Spring AOP 基本包 Spring Ioc 基本包 ...
- [BZOJ 4563]放棋子
[BZOJ 4563]放棋子 题目 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子 ...
- UVa - 11452 - Dancing the Cheeky-Cheeky
先上题目: F. Dancing the Cheeky-Cheeky Context The Cheeky-Cheeky is a new song. They dance it in Mula, ...
- c++ primer 第三章 标准库类型
1. string 标准库 1.1初始化 string s1; 默认构造函数s1为空 string s2(s1); 将s2初始化为s1的一个副本 string s3("value" ...
- Java修改文件夹名称
Java修改文件夹名称 学习了:http://blog.csdn.net/yongh701/article/details/45063833 进行文件夹名字批量修改,注意,要写全路径: package ...
- 多个结果显示成一个group_concat函数
需求:获取班级.课程中文名.老师 扩展:一个班级一门课程,老师可能多个,想把多个教师显示成在一个结果里 解决方案:加个group by 参考资料:https://www.cnblogs.com/zhu ...