Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
475 views
in Technique[技术] by (71.8m points)

c++ - OpenCV imread(filename) fails in debug mode when using release libraries

I have some C++ code and everything was working fine with OpenCV except the function imread(file). It was finding correctly the file and loading the name, but it wasn't loading any data.

Mat pattImage = imread(fileName, 0);

After some reaserch on the web I realized that I was in debug mode but with the release OpenCV libraries, instead of the debug ones.

debug library:    opencv_core231d.lib
release library:  opencv_core231.lib

Though it is the tipical stupid error I thought this shouldn't have anything to do, the debug libraries are supposed to allow OpenCV code debugging while the release libraries allow faster execution of the code, but I don't understand why imread was failing.

Can anybody explain me the differences between debug and release libraries in OpenCV and why this error occurs?

Is it an OpenCV bug?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

I'll never get tired of telling people that the C++ OpenCV interface for Windows has the wierdest bugs.

Write a small test using the C interface to check if it works or not (cvLoadImage(), etc).

Update: now that you know that the C interface works properly, you can either go to the mailing list and report this bug there or dig into the code yourself to find why it fails.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...