开发者

"MATLAB style" computer vision \ image processing visualization \ debugging tools [closed]

开发者_高级运维 It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 11 years ago.

I'm looking for tools that will allow simple visualization and debugging of computer vision \ image processing programs in c++.

The need is mainly for debugging and research.

Specific features:

  • Showing images with zoom in \out
  • ability to annotate images
  • ability to link annotations to data (which will shown when clicked)
  • ability to link annotations to actions

OpenCV has some capabilities, but they are pretty limited - especially mouse and keyboard interaction.


Short answer: I don't think there is.

If you're debugging and doing research, just use Matlab. If speed is an issue, use the Matlab profiler and mex the corresponding functions into C/C++ or even GPU code. I've been doing computer vision research for quite a few years and have written plenty of real-time applications this way.

OpenCV is decent and VLFeat (w/ both Matlab and C API's available) is great. However, ultimately, you're going to move faster in research with an interpreted language w/ a REPL like Matlab. The only other alternatives I'd seriously consider for computer vision prototyping are Python and Lush.


I agree with pxu that there probably isn't an image processing library that's going to do exactly what you want. Both OpenCV and VXL have a few basic and/or clunky GUI components, but won't be sufficient for your requirements.

If you want to stick with C++, then I'd recommend either Qt (distributed under LGPL - so free for commercial and non-commercial use) or Microsoft .NET. Both of these library frameworks have a good UI feature set for dealing with images (and video, to some extent), and rendering of basic shapes. Both are very well documented. My feeling is that even if you're new to Qt, it would only take a few days or so to knock up a simple application with the features you listed.

Qt might also be an interesting option if you're looking to prototype in Python. A combination of Python, PySide/PyQt, OpenCV, NumPy and SciPy should give a very decent prototyping environment. Enthought also list numerous other packages which could be useful. Furthermore, as some of these libraries are available in both languages, it'll ease the transition from prototype to optimised implementation in C++.


The technique I'm using frequently is to put in C++ code a kind of trace points.

int x, y;
double d;
MyImage myImg;

TRACE_POINT(x, y, d, myImg);

TRACE_POINT is a macro that conditionally serializes data to an external library. For example, ImageJ is a very powerful tool with many plugins available. I worked in a project where a simple TCP based ImageJ plugin was connected to Visual Studio debugger. Images were automatically sent to ImageJ as you mouse over the myImg variable inside a debugger.

Or (promotion) something like Vcall of Cpp2Mtl that knows to serialize data from such a TRACE_POINT directly to Matlab.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜