Pages

2009年12月15日 星期二

製作簡單圖表

開發過程中,常常需要偵錯,方法不外乎下中斷點、印訊息、寫檔,但想動態地觀察資料,就需要視覺化的呈現,像「ZedGraph」和「OWC11」都是不錯的選擇。但殺雞焉用牛刀,所以就自己寫個函式,配合 OpenCV 作呈現(因為他跨平台嘛)。

因為我的需求非常簡單,只要幫助我觀察資料就好,所以實作上非常簡單,在此不多加贅述,只要說明一下函式原型就好:

Broken Line(點我一下>///<)
bool BrokenLineGraph(IplImage *blImg, int *data,
int *range, int dataNum, bool reset);
  1. 1st parameter:秀資料的圖檔。
  2. 2nd parameter: 原始資料。
  3. 3th parameter:資料範圍,range[0] = min;range[1] = max。
  4. 4th parameter:資料量。
  5. 5th parameter:是否刷新圖檔。

Histogram
(點我一下>///<)
bool HistogramGraph(IplImage *hgImg, int *data,
int *range, int dataNum, bool reset, CvRNG *rng);
  1. 1st ~ 5th:同上。
  2. 6th parameter:亂數種子,用來取色。 
所以是非常簡單,對我而言夠用了。至於餵進來的資料多寡,會影響繪圖的結果,所以要提醒一點,圖檔寬度要大於等於資料量,或者分批丟進來!

為了加強跨平台的特性、與維持原始碼的"乾淨",我使用 CMake 這個工具來產生 makefile,不過我只完成一半(windows),有興趣的可以把另一半完成,至於詳細語法可以自行 google。

程式碼下載

參考資料:

1 則留言:

Eric 提到...

若要畫實心的圖形,就設定成「CV_FILLED」,可以參考「cxcore.h」

 
Blogger Templates