Ich lese viele Beiträge, aber ich kann immer noch keine Lösung für mein Problem finden. Die verlinkten Bibliotheken sind korrekt und der Code funktioniert gut mit vielen anderen openCV-Funktionen, aber nicht mit findContours. Ich werde meinen Code schreiben:Heap Fehler bei der Verwendung von findContours openCV
int check_broken(Mat src, Mat check){
vector<Mat> contours;
vector<Vec4i> hierarchy;
Mat check_gray,check_g;
cvtColor(src,check_gray,CV_BGR2GRAY);
threshold(check_gray,check_g,100,255,THRESH_BINARY);
namedWindow("ventana",CV_WINDOW_AUTOSIZE);
imshow("ventana",check_gray);
waitKey(0);
Mat dst(check.rows,check.cols,CV_8UC1,Scalar::all(0));
int count = 0;
findContours(check_g, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
for (int i = 0; i < contours.size() ; i = hierarchy[i][0]){
Rect r = boundingRect(contours[i]);
if(hierarchy[i][2]<0){
rectangle(check,Point(r.x,r.y), Point(r.x+r.width,r.y+r.height),Scalar(0,0,255),3,8,0);
count++;
}
}
namedWindow("ventana",CV_WINDOW_AUTOSIZE);
imshow("ventana",dst);
waitKey(0);
destroyWindow("ventana");
return 0;
}
Ich bin in Release-Modus kompiliert und alle Bibliotheken sind von der gleichen Version 2413 und ich arbeite mit VS10. Ich frage mich, wie ich mit diesem Problem umgehen soll. Danke für die Hilfe!
Ihre verknüpften Bibliotheken sind * *Nicht richtig. Achten Sie darauf, keine Debug-Bibliotheken im Freigabemodus oder umgekehrt zu verwenden. Und verwenden Sie die gleiche Architektur (x86 vs x64) als Ihr Projekt. Und achten Sie darauf, dass die OpenCV Libs mit VC10 kompiliert werden – Miki
opencv_calib3d2413.lib opencv_contrib2413.lib opencv_core2413.lib opencv_features2d2413.lib opencv_flann2413.lib opencv_gpu2413.lib opencv_highgui2413.lib opencv_imgproc2413.lib opencv_legacy2413.lib opencv_ml2413. lib opencv_nonfree2413.lib opencv_objdetect2413.lib opencv_photo2413.lib opencv_stitching2413.lib opencv_superres2413.lib opencv_ts2413.lib opencv_video2413.lib opencv_videostab2413.lib Dies sind die Bibliotheken, die für den Release-Modus verlinkt sind, ich bin sicher, dass sie korrekt sind. –
Dies sind Release-Bibliotheken. Stellen Sie sicher, dass Sie Ihren Code in der Version ausführen. Bitte zeigen Sie auch den Pfad, wo diese Bibliotheken sind – Miki