【问题标题】:OpenCV 2.4 Unsupported format for distanceTransformOpenCV 2.4 distanceTransform 不支持的格式
【发布时间】:2016-08-05 19:44:04
【问题描述】:

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

OpenCV 错误:不支持的格式或格式组合(来源 图像必须为 8uC1,距离图必须为 32fC1(或 8uC1,以防万一 cvDistTransform 中的简单 L1 距离变换)),

但是,我的输入垫似乎确实是 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);

感谢您的帮助!

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    如果有人好奇的话。确保您的图像是单通道的。我以为 CV_8U 可以为灰度图像转换为 CV_8UC1,但事实并非如此

    您可以使用cv::cvtColor(src, src, CV_BGR2GRAY); 减少频道数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多