Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 获得;“未处理的异常”;使用opencv/c+应用canny边缘检测器后出错+;_C++_Opencv - Fatal编程技术网

C++ 获得;“未处理的异常”;使用opencv/c+应用canny边缘检测器后出错+;

C++ 获得;“未处理的异常”;使用opencv/c+应用canny边缘检测器后出错+;,c++,opencv,C++,Opencv,当我尝试将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边缘检测器应用到图像中时,出现“未处理异常”错误

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函数调用行中出错

提前感谢..

根据Canny()函数的参数

源图像–单通道8位。
设计–与来源相同的尺寸和类型

您使用的是32位浮点图像

试着

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

当您实际通过
distance
(您甚至没有向我们显示)时,为什么要创建
cv::Mat dis
,作为
Canny
函数的输入参数?我想你真的不应该把输入和输出都传递给我编辑了这篇文章…这是错误的…我更改了它,但仍然得到了同样的错误。是的,我使用32位浮点。这有什么问题吗?是的,canny()只支持8位单通道图像,你的意思是,它必须是CV_8U,即使我使用浮点?谢谢..我更改了它,现在我没有得到那个错误。但是为什么我用来显示边缘检测的窗口会闪烁?!!奇怪的是,当我点击它时,它会显示结果,否则不会!