Windows запустила точку останова opencv vs2010

Код внизу дает результат:

результат http://oi42.tinypic.com/vhukj6.jpg

При нажатии клавиши отображается сообщение об ошибке:

ошибка http://oi39.tinypic.com/2n1gkkm.jpg

Как я могу это исправить? Протестировано на VS2010 Win8 и WinXp с использованием MFC в качестве статической библиотеки.
EDIT1: в обоих случаях целевой платформой является Win32
EDIT2: проблема исчезает на Win8, когда использование MFC переключается на «использовать стандартные библиотеки Windows». На WinXp выдает нарушение прав доступа и указывает на free.c: retval = HeapFree (_crtheap, 0, pBlock);
EDIT3: Opencv 2.4.7 используется

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int mindistance = 50; // minimum distance between 2 circle centres
int hi = 255, lo = 20; //the maximum and minimum radius of the circlesint main(int argc, char* argv[]) {

Mat orig = imread(argv[1]);
Mat display = orig.clone();
Mat snooker, edges;
cvtColor(orig, snooker, CV_RGB2GRAY);
Canny(snooker, edges, 20, 50, 3);
vector<Vec3f> circles;

HoughCircles(edges, circles, CV_HOUGH_GRADIENT, 1, mindistance, hi, lo);

for( size_t i = 0; i < circles.size(); i++ )
{

Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
if (radius < (min(snooker.rows, snooker.cols)/10) )
continue;

// draw the green circle center
circle( display, center, 3, Scalar(0,255,0), -1, 8, 0 );

// draw the blue circle outline
circle( display, center, radius, Scalar(255,0,0), 3, 8, 0 );

}

imshow( "circles", display );
imshow("snooker", snooker);
imshow("edges", edges);
waitKey();

return 0;

}

0

Решение

похожий на Неразрешенные внешние символы OpenCV — нужны другие библиотеки?

поскольку вы используете MFC в качестве статической библиотеки, вы должны добавить .lib в / staticlib вместо / lib

например, «opencv \ build \ x86 \ vc10 \ staticlib»

и добавьте следующий дополнительный .lib

(in /staticlib but not in /lib,example for debug version as 'd' before '.lib')
libpngd.lib
libtiffd.lib
zlibd.lib
IlmImfd.lib
libjasperd.lib
libjpegd.lib

(part of mfc i thought)
comctl32.lib
gdi32.lib
vfw32.lib

в соответствии с https://stackoverflow.com/a/21946953/3800477

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]