OpenCV. cvFnName() works, but cv::FunName() doesn't work

Posted by Innuendo on Stack Overflow See other posts from Stack Overflow or by Innuendo
Published on 2011-11-23T02:35:57Z Indexed on 2011/11/23 9:50 UTC
Read the original article Hit count: 205

Filed under:
|
|

I'm using OpenCV to write a plugin for a simulator. I've made an OpenCV project (single - not a plugin) and it works fine. When I added OpenCV libs to the plugin project, I added all libs required. Visual Studio 2010 doesn't highlight any code line with red. All looks fine and compiles fine.

But in execution, the program halts with a Runtime Error on any cv::function. For example: cv::imread, or cv::imwrite. But if I replace them with cvLoadImage() and cvSaveImage(), it works fine.

Why does this happen? I don't want to rewrite the whole script in old-api-style (cvFnName). It means I should change all Mat objects to IplImages, and so on.

UPDATE:

// preparing template
ifstream ifile(tmplfilename);
if ( !FILE_LOADED && ifile ) {
    // loading template file
    Mat tmpl = cv::imread(tmplfilename, 1);  // << here occurs error
    FILE_LOADED = true;
}

Mat src;

Bmp2Mat(hDC, hBitmap, src); 

TargetDetector detector(src, tmpl);

detector.detectTarget();

If I change to:

if ( !FILE_LOADED && ifile ) {
    IplImage* tmpl = 0;
    tmpl = cvLoadImage(tmplfilename, 1); // no error occurs
}

And then no error occurs.

Early it displayed some Runtime Error. Now, I wanted to copy exact message and it just crashes the application (simulator, what I am pluginning). It displays window error - to kill process or no. (I can't show exact message, because I'm using russian windows now)

© Stack Overflow or respective owner

Related posts about c++

Related posts about visual-studio