Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

What are the SURF support restrictions?

I made a nice application to find matching features in photos. I noticed however that the libraries are not included when I build the application, which makes it difficult to give it to other people.

So I managed to build the app with static libraries that I built from source (originally I used MacPorts to install opencv). But during run-time it tells me that SURF support was not compiled in.

The exact message I get is this:

OpenCV Error: The function/feature is not implemented (OpenCV was built without SURF support) in cvExtractSURF, file /Users/mboon/Documents/workspaceGit/opencv-2.4.5/modules/legacy/src/features2d.cpp, line 77

So I looked around the web to solve that and ran into a few things. One was a suggestion that I needed to include the nonfree library. But I already do that and I still get the message that SURF is disabled. The libopencv_nonfree.a file is 1.5Mb but I don't really know what's in there.

The other thing I saw is that the reason SURF is not included by default since version 2.4 due to patent or import restrictions. Can anyone point me to information about what those restrictions are? Can I actually use it, or not? Would I need a license?

Can someone tell me what exactly I'd need to do to build OpenCV including SURF support? Is there a CMake option I missed? Something else?

Any information or help is greatly appreciated.