2011-06-26 88 views
3

我正在尋找一些工具,可以在C++中對計算機視覺\圖像處理程序進行簡單的可視化和調試。「MATLAB風格」計算機視覺圖像處理可視化調試工具

需要主要是爲了調試和研究。

具體功能:

  • 顯示變焦圖像\出
  • 能力來註釋圖像
  • 到的註釋(這將示出當點擊時)鏈接到數據
  • 鏈接註釋能力的能力採取行動

OpenCV有一些功能,但它們相當有限 - 特別是鼠標和d鍵盤交互。

+4

你是什麼意思的「Matlab風格」? –

+0

您最好列出您正在尋找的等價物的一些MatLab命令。 –

回答

1

簡答:我不認爲有。

如果您正在調試和研究,只需使用Matlab。如果速度是一個問題,請使用Matlab分析器和mex將相應的函數轉換爲C/C++甚至GPU代碼。我已經從事計算機視覺研究多年,並已經用這種方法編寫了大量的實時應用程序。

OpenCV是體面的,VLFeat(無論是Matlab和C API的可用)是偉大的。然而,最終,你會用像Matlab這樣的REPL解釋型語言進行更快的研究。我唯一認真考慮的計算機視覺原型的其他選擇是Python和Lush

1

我同意pxu,可能沒有一個圖像處理庫,會做你想要的。 OpenCV和VXL都有一些基本和/或笨重的GUI組件,但不足以滿足您的要求。

如果你想堅持使用C++,那麼我會推薦Qt(在LGPL下分發 - 如此免費用於商業和非商業用途)或Microsoft .NET。這兩個庫框架都具有良好的用戶界面功能集,用於處理圖像(以及某種程度上的視頻)以及渲染基本形狀。兩者都有很好的記錄。我的感覺是,即使你是Qt新手,只用幾天時間就可以用你列出的功能來打造一個簡單的應用程序。

如果您正在尋找Python原型,Qt也可能是一個有趣的選項。 Python,PySide/PyQt,OpenCV,NumPy和SciPy的組合應該提供一個非常體面的原型環境。 Enthought也列出了許多其他可能有用的軟件包。此外,由於這些庫中的一些可以使用這兩種語言,因此它將減輕C++中從原型到優化實現的過渡。

1

我經常使用的技術是在C++代碼中添加一種跟蹤點。

int x, y; 
double d; 
MyImage myImg; 

TRACE_POINT(x, y, d, myImg); 

TRACE_POINT是有條件地串行化數據到外部庫的宏。例如,ImageJ是一個非常強大的工具,提供了許多插件。 我在一個基於TCP的ImageJ插件連接到Visual Studio調試器的項目中工作。當您將鼠標懸停在調試器內的myImg變量上時,圖像會自動發送到ImageJ。

或者(促銷)類似的Cpp2Mtl VCALL它知道從這樣的TRACE_POINT直接Matlab的序列數據。

+0

您是否有示例(或引用)從調試器觸發此類操作? –

+0

在ImageJ的情況下,它是[調試器可視化器](http://www.manicai.net/comp/debugging/visualizer/)。雖然'TRACE_POINT'沒有調試器工作。 Matlab通過來自命令提示符的命令「連接」到感興趣的點。 –