Я пишу функцию, которая находит и возвращает центр любого изображения, данного системе (в основном это круглые объекты).
При запуске метода findContours с использованием OpenCV3.10 функция выдает ошибкув векторном классе. Вот мой код:
cv::Mat image = next_image(cam);
cv::Mat gray; cv::Mat thresh; cv::Mat conv;
cv::Mat canny_output; cv::Mat nImg;
std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
//threshold and contour the image
cv::cvtColor(image, conv, cv::COLOR_GRAY2RGB);
cv::cvtColor(conv, gray, CV_BGR2GRAY);
cv::blur(gray, gray, cv::Size(5, 5));
cv::threshold(gray, thresh, 60, 355, cv::THRESH_BINARY);
cv::findContours(thresh, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);
Visual Studio выбрасывает исключение необработанным, когда оно обращается к findContours (и в частности, в векторный файл, который он использует), и сообщение говорит:
Необработанное исключениев 0x5825AF78 (opencv_core310.dll) в Laser_Tracking.exe: 0xC0000005: Место чтения нарушения доступа 0xDDDDDDD9.
В настоящее время я использую Visual Studios 2019 для запуска OpenCV.