Matlab風格的Plot類for opencv

2021-07-04 23:27:15 字數 2965 閱讀 4753

matlab style plot functions for opencv

author libing64 && jack dong

原**位址 :

功能預覽:

中間是圖表的標題(只支援英文,中文會亂碼),xy軸兩端的紅色數字表示輸入資料xy的最小最大值,青色是xy軸的資料的意義的標示(同樣只支援英文,顏色可自定義),xy軸刻度線自動生成。可以選擇不同的形狀來表示點(支援多種線型,多種顏色,可選擇點雨點之間是否用直線連線)。

這個標頭檔案中包含了兩個類,cplotplot,plot繼承自cplot,兩個類都是實現的一樣的功能,不同的地方在於cplot提供c風格opencv1.x引數和返回值,而plot提供c++風格opencv2.x引數的支援。比較而言,plot比cplot使用更簡單。

引數設定:

public:

double y_max; //預設為輸入資料y的最大值

double y_min;

double x_max;

double x_min;

int border_size; //邊界大小 預設為40個畫素大小

這幾個引數可手動設定,但如果你設定的引數不合適那麼還是會使用預設引數。

public:

cvscalar backgroud_color; //背景預設白色

cvscalar axis_color; //座標軸及刻度顏色預設為黑色

cvscalar text_color; //座標上表示最大最小值的標籤的顏色預設為紅色

預設的輸出的圖表的大小由巨集定義給出:

#define window_width 800

#define window_height 800

以上引數如果要自定義必須在呼叫plot方法之前設定好。

public:

void

title(string title_name,cvscalar title_color);

void xlabel(string xlabel_name, cvscalar label_color);

void ylabel(string ylabel_name, cvscalar label_color);

設定標題和xy軸意義的標籤,這些標籤都不支援中文,只支援英文。有解決中亂碼的方法,但是太過複雜。

public:

//兩種輸入xy軸資料的方式

template

void

plot(t *y, size_t cnt, cvscalar color, char type = '*',bool is_need_lined = true);

templatevoid plot(t *x, t *y, size_t cnt, cvscalar color, char type = '*',bool is_need_lined = true);

這兩個方法都由泛型實現,方便傳入不同型別的引數,第乙個方法沒有x軸的資料那麼x軸預設是從0 開始的整數(0,1,2,3…)。引數的含義分別為 x軸資料陣列;y軸資料陣列;陣列的長度;畫線的顏色;畫線的型別(預設為『*』);點與點之間是否用直線連線(預設為true連線);

關於畫線的型別,支援以下線形:

//l (小寫)       直線   

//* 星

//. 點

//o(小寫) 圈

//x(小寫) 叉

//+ 十字

//s(小寫) 方塊

如果需要在同一張圖上畫出多張曲線,只需要多次呼叫plot方法,每次呼叫plot方法的時候物件會把資料儲存起來,如果想清除先前儲存的資料,可以呼叫下面的clear()方法:

public:

//清空上的資料

void

clear();

public:

iplimage* figure;

plot方法不會直接返回結果,會把結果影象存在figure這個成員當中(防止多次申請和釋放記憶體),在呼叫plot方法後,直接訪問figure成員即可獲得結果。

plot的使用相比較cplot來說,只是有兩個地方不同,plot方法和 獲得結果影象。

public:

//過載這兩個函式 傳參簡單

template

void plot( vector

y,cvscalar color, char type = '*',bool is_need_lined = true);

template

void plot(vector

< point_ > p,cvscalar color, char type = '*',bool is_need_lined = true);

//增加乙個函式把c版本的 iplimage 轉換成mat

mat figure()

在給plot傳xy資料的時候直接傳入點的向量即可,獲取結果影象的時候需要呼叫mat figure();方法。

MATLAB中的plot 函式

xk 315 0.01 1575 temp 157.5 a temp xk plot xk,a hold on plot xk,a hold off grid minor axis 250 1650 0 0.6 xlabel 5級暗紋的距離 ylabel a的距離 grid minor 新增細密的網...

matlab中PLOT指令的基本用法

一 基本使用 plot後面的可以是單一矩陣,如果是m n的矩陣,則自動繪製m 行數 個曲線,座標為列號。plot後面的還可以是乙個或多個矩陣 向量 標量對。具體規則描述如下 plot x,y x用於產生橫座標,而y用於產生縱座標,產生對應點後,按照行號或列號進行相連產生折線圖 以下規則中向量不論是行...

總結整理Matlab的plot函式用法

1.plot x,y x y 為相應點集 2.plot x,y1,x,y2 在乙個視窗下繪製多條曲線之方法一 3.hold on 在乙個視窗下繪製多條曲線之方法二 plot x,y1 plot x,y2 hold off 4.plot後 xlabel x axis name 設定x y軸名稱 yla...