Ich habe Probleme bei der Verwendung findContour()
Funktion von opencv. Es abstürzen und geben die folgende Fehlermeldung:FindContour OpenCV C++
Hier ist mein Code:
using namespace cv;
using namespace std;
Mat src; Mat src_gray;
int thresh = 100;
int max_thresh = 255;
RNG rng(12345);
/// Function header
void thresh_callback(int, void*);
/** @function main */
int main(int argc, char** argv)
{
src = imread("test.png");
/// Load source image and convert it to gray
//src = imread(argv[1], 1);
/// Convert image to gray and blur it
cvtColor(src, src_gray, CV_BGR2GRAY);
blur(src_gray, src_gray, Size(3, 3));
/// Create Window
char* source_window = "Source";
namedWindow(source_window, CV_WINDOW_AUTOSIZE);
imshow(source_window, src);
createTrackbar(" Canny thresh:", "Source", &thresh, max_thresh, thresh_callback);
thresh_callback(0, 0);
waitKey(0);
return(0);
}
/** @function thresh_callback */
void thresh_callback(int, void*)
{
Mat canny_output;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
/// Detect edges using canny
Canny(src_gray, canny_output, thresh, thresh * 2, 3);
/// Find contours
findContours(canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0));
/// Draw contours
Mat drawing = Mat::zeros(canny_output.size(), CV_8UC3);
for (int i = 0; i< contours.size(); i++)
{
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
drawContours(drawing, contours, i, color, 2, 8, hierarchy, 0, Point());
}
/// Show in a window
namedWindow("Contours", CV_WINDOW_AUTOSIZE);
imshow("Contours", drawing);
}
Alle Einstellung wie Eigenschaftsblatt korrekt ist, wie kann das Programm funktioniert, aber es abstürzen, sobald es das getan thresh_callback Funktionen. Ich benutze Visual Studio 2015 mit opencv 3.0. Ich habe Visual Studio 2012 ausprobiert oder eine andere Version von opencv wie 2.4.9 versucht. Leider funktioniert es immer noch nicht. Hoffe, dass Sie alle mir helfen
zeigte hier meine Karteikarte Einstellungen: 1. Debug x64 Eigenschaftsblatt
Ich bin in der Lage, andere Bildverarbeitungsfunktionen wie cv::imread
auszuführen. Nur die findContour()
hat Fehler.
aktualisiert
Bitte verknüpften Libs in beiden Debug zeigen und Release – Miki
haben Blick auf [DIESE] (http://stackoverflow.com/questions/21173829/opencv-findcontours- method-errors? rq = 1) und [THIS] (http://stackoverflow.com/questions/36138982/opencv-3-0-findcontours-crashes?rq=1) –
Hallo @Miki, ich hatte das Bild hochgeladen von verknüpfte Bibliotheken auf den Eigenschaftenblättern. –