OpenCV距离变换错误

时间:2014-03-30 09:30:17

标签: c++ opencv

我从这个问题Blending does not remove seams in OpenCV开始回答,但我得到了

OpenCV错误:不支持的格式或格式组合源图像必须是8UC1,并且在简单L1距离变换的情况下距离图必须是32fc1或8uC1>>功能未知。

为什么我会收到此错误?是否与我的输入有关?

1 个答案:

答案 0 :(得分:0)

远程转换上的opencv文档声明输入图像必须是“8位,单通道”(CV_8UC1),输出图像将是“32位浮点,单通道”( CV_32FC1)http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html

您的输入图像可能不是CV_8UC1。要获得一个,您可以使用比较运算符,例如>=,如距离变换distrans.cpp上的示例代码(在源代码中,opencv/samples/cpp)。

 Mat edge = gray >= edgeThresh;

edge将是输入,gray可能是灰度图像,edgeThresh是整数(= 100)。

要获得灰度图像,您可以先使用:How can I convert a cv::Mat to a gray scale in OpenCv?

 cv::cvtColor(colorMat, gray, CV_BGR2GRAY);

再见,