1

I'm starting a Computer Vision project, and need to build an interface between a "Vision Agent" I want to develop and Images and Videos it should use as input.

I'm working in C++ and this interface should expose some methods for low level Input/Output operations:

  • load Image (in memory)
  • load a pool of Images (saved in a Directory)
  • access a single pixel in a loaded Image
  • load a Video as a pool of Images (would like to decide time interval between each frame)
  • load a single frame of a Video as an Image

I'm a newbie to Computer Vision, and need to find an efficient library that will help me implement this interface.

By browsing on the web I found some of the most used libraries for this kind of projects, such as:

  • OpenCV
  • VXL
  • IVT

What I'd like to know is:

Has anyone of you has worked with one of these?

Do you think they are appropriate for my task? If yes, which one is better in your opinion (more usable and efficient).

Do you have any other suggestions?

ADDED QUESTION:

Do you know what kind of license these libraries (or other suggested ones) are produced under?

Matteo
  • 7,924
  • 24
  • 84
  • 129

2 Answers2

7

I worked with OpenCV. I don't know (or remember) the other but OpenCV is quite a first choice. It supports all of the features you mentioned. These are rather base needs.

Keep in mind that OpenCV is rather low-level library. You will work on image matrices and some common math or statistics functions as well. It may be hard at the beginning. I would suggest reading (or just browsing) O'Reilly's 'Learning OpenCV' especially to make use of more advanced features.

EDIT: OpenCV will be efficent for sure. Its image frame-by-frame processing would be a benefit for your needs. It is released over BSD licence.

disorder
  • 291
  • 1
  • 7
1

I would also suggest OpenCV for your task at hand.

You may also check this older question for other possibilities and opinions.

Community
  • 1
  • 1
rics
  • 5,494
  • 5
  • 33
  • 42