OpenCV3.0 migration guide?

asked 2015-03-06 08:23:48 -0500

ClintFromVa gravatar image

updated 2015-03-16 14:24:41 -0500

Hi all,

I installed CV2, got some demos working, then decided to try CV3 when I found an interesting one that depended on it. CV3 installed and the new demo works but now (HA!) the old ones are broke. I gather there are significant changes in the API and a lot of legacy support is gone. Does anyone have a list of what is gone and what replaces it? Other things I should know for a successful migration?

In case there is no better answer, I know O'Reilly has a second edition of their OpenCV book for 3.0 coming out end of April. Hopefully that will highlight changes but I don't want to wait.

For what it matters, I'm working in C++ under VS13.


Update: an example of the gotchas I've found. imwrite, according to this 3.0.0 API ref, supports a number of parameters including CV_IMWRITE_JPEG_QUALITY. The 'CV_' prefix kills it...apparently points back to an obsolete C header, imgcodecs_c.h. Point is, removing 'CV_' is proper (works anyway) for CV3. The example code farther down has the same problem.

What makes it hard to find is that the enumeration exists, just isn't #INCLUDEed ... because it shouldn't be. It would be better if the deprecated header didn't exist. I installed from the .zip file so I don't think I grabbed stuff I shouldn't have.

I did check the references in the answers (thanks again), but didn't see/understand if there a list of these kinds of things, should there be?

edit retag flag offensive close merge delete


berak gravatar imageberak ( 2015-03-06 08:57:36 -0500 )edit

@berak, im sorry to ask this here, but the opencv headers are not going to be moved to some opencv3/ (instead of opencv2/) folder? or I completely misinterpret the folder names?

juanmanpr gravatar imagejuanmanpr ( 2015-03-06 10:22:14 -0500 )edit

@juanmanpr don't feel sorry, it'an obvious idea, ain't it ?

but i do not think, that this will happen in the near future, too much friction/noise.

what changed there mainly, is , that all api headers went 'one up', like opencv2/core.hpp instead of opncv2/core/core.hpp

berak gravatar imageberak ( 2015-03-06 10:45:21 -0500 )edit

@berak I don't understand why there's friction/noise against changing the name to opencv3 when source code compatibility is broken anyway. Why are the decision makers not having opencv2 and opencv3 exist simultaneously?

SSteve gravatar imageSSteve ( 2015-03-16 21:19:45 -0500 )edit