尝试将Canny边缘检测器应用于图像时,出现“未处理的异常”错误。

int width;
int height;
cv::Mat dis = Mat(width, height, CV_32FC1,Dis);
cv::Mat cannyEdge(dis.rows, dis.cols, CV_32FC1);
GaussianBlur( dis, dis, Size(3, 3), 2, 2 );
Canny( dis, cannyEdge , 100 , 100 * 3, 3);
imshow("canny_edge",cannyEdge);
}

似乎一切正确,但是Canny Function调用行出现错误...

提前致谢..

最佳答案

根据OpenCV documentation Canny()函数的参数

源图像–单通道8位。
目标-与源相同的大小和类型。

您正在使用32位浮点图像。

并尝试

cv::Mat dis = Mat(width, height, CV_8UC1,Dis);

关于c++ - 使用opencv/c++应用Canny边缘检测器后出现 “Unhandled exception”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20396146/

10-12 21:10