我在OpenCV的代碼工作得很好,直到當我想找到輪廓:opencv的未處理異常contour.exe
findContours(src, contours,hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);
然後我不斷收到以下錯誤:
"Unhandled exception at 0x773e3e28 in Contour.exe: Microsoft C++ exception: cv::Exception at memory location 0x002ff3ac.."
你對這個錯誤有什麼想法嗎?
我的完整代碼如下。
感謝
Mat src=Mat(100,200,CV_64F),newimg;
vector<vector<Point>> contours;
vector<Vec4i> hierarchy;
for (int i=25;i<80;i++)
for(int j=25;j<80;j++)
src.at<double>(i,j)=1;
imshow("img",src);
waitKey(0);
findContours(src, contours,hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);
findContours只接受CV_8UC1圖像(特別是CV_32SC1)。您傳遞的是CV_64F而不是 – Miki
您通常將邊緣檢測器(E.G. Canny)應用於圖像,然後取出Canny輸出並將其送入邊緣檢測器。函數findContours接受一個CV_8UC1圖像來尋找輪廓。 –
@Masoud然後檢查你是否在調試模式下使用版本庫,或反之亦然 – Miki