gpt4 book ai didi

opencv - cv::Canny 抛出不匹配/不支持的格式异常

转载 作者:行者123 更新时间:2023-12-02 16:47:33 25 4
gpt4 key购买 nike

我正在做一些非常基本的边缘检测工作。我的部分实现涉及从自定义 Image 类复制到 cv::Mat,然后复制回 Image。我正在使用 this article作为我完成边缘检测和轮廓工作(当前列表中未显示)的指南。在这个例子中,PerturbedBorderFilter 是 Image 的子类。这是我所拥有的:

void PerturbedBorderFilter::performFilter(const Image& src)
{
int h = src.Height(), w = src.Width();
cv::Mat
orig(h, w, CV_32FC3),
cannyOutput(h,w,CV_32FC1),
origGray(h,w,CV_32FC1);

src.copyTo(orig);

cv::cvtColor(orig, origGray, CV_RGB2GRAY);
cv::blur(origGray, origGray, cv::Size(3,3));
cv::Canny( origGray, cannyOutput, 0.1, 0.2, 3);

copyFrom(cannyOutput);
}

我最终遇到了这个运行时错误:
OpenCV Error: Unsupported format or combination of formats () in cvCanny, file /build/buildd/opencv-2.3.1/modules/imgproc/src/canny.cpp, line 67
terminate called after throwing an instance of 'cv::Exception'
what(): /build/buildd/opencv-2.3.1/modules/imgproc/src/canny.cpp:67: error: (-210) in function cvCanny

据我所知,“origGray”和“cannyOutput”共享相同的类型、深度和 channel 数。我不确定我还应该检查什么。

如果 copyTo() 和 copyFrom() 的实现以某种方式很重要,我也可以提供这些。

一些附加信息:
  • 类 Image 的原生色彩空间是 RGB,32 位浮点深度,值在 [0,1] 中。
  • 目前,copyTo() 将图像上下颠倒复制,但在其他情况下保持不变。我想这一定是无关的,但谁知道呢,也许它有用...
  • 最佳答案

    cv::Canny仅支持 CV_8U图像深度。

    关于opencv - cv::Canny 抛出不匹配/不支持的格式异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13106007/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com