Matlab风格的二维绘图函数PlotOpenCV python plot 绘图

CPlot

简介

Matlab的plot函数非常的强大,进行数据显示的效果非常的好,但是经常使用Opencv的同学如果每次将计算之后的数据导入到Matlab里显示又比较麻烦,因此决定写一类似于plot的C函数,用于在OpenCV中进行数据显示。设计一个Plot类,项目位于github上https://github.com/libing64/CPlot

* 采用泛型设计

* 支持多条线段显示

* 支持多种线型



主要参数

private://窗口大小int window_height;int window_width;vector< vector<CvPoint2D64f> >dataset;//一个Figure中显示的数据集public:IplImage* Figure;// 用于显示的图片// manual or automatic range//显示比例和范围bool custom_range_y;double y_max;double y_min;double y_scale;bool custom_range_x;double x_max;double x_min;double x_scale;//边界大小int border_size;常用函数

//分别加上几种数据类型,你可以尝试改为C++的泛型设计void plot(int *x, int *y, size_t Cnt, CvScalar color);void plot(float *x, float *y, size_t Cnt, CvScalar color);void plot(double *x, double *y, size_t Cnt, CvScalar color);//添加标签void xlabel(string xlabel_name, CvScalar label_color);void ylabel(string ylabel_name, CvScalar label_color);//清空数据void clear();//添加titlevoid title(string title_name);实现

Matlab风格的二维绘图函数Plot(OpenCV) python plot 绘图
到项目主页上Plot.cpp中有完整的代码实现https://github.com/libing64/CPlot

范例

#include "cv.h"#include "highgui.h"#include "plot.h"#include<iostream>int main(int argc, char* argv[]){ const int Cnt = 100; double X[Cnt] = {0}; double Y[Cnt] = {0}; for(int i = 0; i < Cnt; i++) { X[i] = (double)i; Y[i] = (double)4*i - 20; } cvNamedWindow("hello",1); Plot plot; CvScalar color = CV_RGB(255, 0, 0); plot.plot(X, Y, Cnt, color); cvShowImage("hello", plot.Figure); cvWaitKey(0); //plot.clear(); for(int i = 0; i < Cnt; i++) { X[i] = (double)i; Y[i] = (double)(5*i - 20); } plot.plot(X, Y, Cnt, color); cvShowImage("hello", plot.Figure); cvWaitKey(0); for(int i = 0; i < Cnt; i++) { X[i] = (double)i; Y[i] = (double)(-5*i - 20); } plot.plot(X, Y, Cnt, color); cvShowImage("hello", plot.Figure); cvWaitKey(0); for(int i = 0; i < Cnt; i++) { X[i] = (double)i; Y[i] = (double)(50*sin(i*0.1)); } plot.plot(X, Y, Cnt, color); cvShowImage("hello", plot.Figure); cvWaitKey(0); int X2[Cnt] = {0}; int Y2[Cnt] = {0}; for(int i = 0; i < Cnt; i++) { X2[i] = i; Y2[i] = -100*i - 20; } plot.clear(); plot.plot(X2, Y2, Cnt/2, color); cvShowImage("hello", plot.Figure); cvWaitKey(0); return 0;}显示效果



如何自己优化

如果感觉这些代码并不够优,你可以自己去优化它

注册一个github的账号

进入项目主页https://github.com/libing64/CPlot

点击fork

进入自己的项目主页git clone git git@github.com:yourname/CPlot.git

修改代码并commit

git commit -m "commit"

当感觉自己写的比较优秀的时候可以,与原始项目合并,点击pull

  

爱华网本文地址 » http://www.413yy.cn/a/25101011/88497.html

更多阅读

安全二维码是干什么的 二维码能干什么

安全二维码是干什么的——简介安全二维码用于对二维码进行安全检测,以确保二维码信息中不含有病毒或其它垃圾信息。360推出安全二维码,可直接扫描或读出二维码,同时对其进行安全扫描,保护手机不受安全威胁。下面就来看一下360如何应用安

qq的二维码在哪里?怎么样申请二维码 qq二维码在哪里找

qq的二维码在哪里?怎么样申请二维码——简介怎么查看自己qq的二维码,怎么生成自己qq的二维码?下面小编就来教你怎么做,只要我们使用手机qq即可,下面请看详细说明qq的二维码在哪里?怎么样申请二维码——工具/原料手机qqqq的二维码在哪里?

绘图引擎初始化出错应该怎么解决 二维绘图引擎

首先考虑是用其他绘图软件出现这个问题吗?如果出现,则是显卡驱动的问题,如果没有出现,这是这个绘图软件本身的问题,请寻找适当的软件重新安装。安装时一定要认真了解这个软件的安装环境,对硬件和软件

qq二维码在哪 怎么生成 怎么生成自己qq二维码

qq二维码在哪 怎么生成——简介qq二维码是一个专门为自己设置的二维码图标,网友通过扫描你的二维码自动查看你的资料,并通过你的资料添加你为好友,那么怎么制作一个属于自己的个性二维码呢,本篇教你。qq二维码在哪 怎么生成——方法/步

手机怎么扫二维码 怎扫手机上的二维码

手机怎么扫二维码——简介现在网上很流行二维码的扫描,方便大家下载东西,下面就让小编来为大家介绍一下手机怎么扫二维码吧!手机怎么扫二维码——方法/步骤手机怎么扫二维码 1、网上有很多关于二维码下载的软件,例如“快拍二维码”“二

声明:《Matlab风格的二维绘图函数PlotOpenCV python plot 绘图》为网友放声就去笑分享!如侵犯到您的合法权益请联系我们删除