OpenCV 2.4 distanceTransform不支持的格式



我试图使用cv::distanceTransform((函数,但在运行时出现以下错误:

OpenCV错误:不支持的格式或格式组合(源图像必须是8uC1,距离图必须是32fC1(在情况下为8uC1简单L1距离变换的((在cvDistTransform、中

然而,我的输入垫似乎确实是CV_8U(其类型=16,深度=0,通道=3(。我的输出垫被声明为CV_32FC1。违规代码:

     //...Apply laplacian
     //Convert to CV_8U
     cv::convertScaleAbs(image_laplacian, image_laplacian);
     //Distance transform
     cv::Mat edge_distance(image_laplacian.rows, image_laplacian.cols, CV_32FC1);
     cv::distanceTransform(image_laplacian, edge_distance, CV_DIST_L2, 5);

谢谢你的帮助!

如果其他人好奇。确保你的图像是单通道的。我认为CV_8U可以转换为CV_8UC1用于灰度图像,但并非如此

您可以使用cv::cvtColor(src, src, CV_BGR2GRAY);来减少通道的数量。

相关内容

  • 没有找到相关文章

最新更新