卡边缘检测OpenCV



我遵循了OpenCV网站上的Canny边缘检测器的教程,并且得到了不好的结果,并且对它的工作原理非常困惑。我用它来检测名片上的边缘,然后根据结果裁剪。

我正在使用这个代码,它给了我一个全黑的图像与几个白色像素。代码基于文档。

void cannyThreshold(Mat& src_gray, Mat& dst)
{
    blur(src_gray, src_gray, cv::Size(3,3));
    Canny(src_gray, src_gray, 900, 890, 3);
    dst = Scalar::all(0);
    src_gray.copyTo(dst, src_gray);
}

有谁能给我指出正确的方向来检测这张牌的边缘吗?

void Canny( InputArray image, OutputArray edges,
                         double threshold1, double threshold2,
                         int apertureSize=3, bool L2gradient=false );

您需要为threshold1和threshold2找到最佳值以获得更好的结果。看

阈值太高。因此,尝试使用以下

来代替Canny(src_gray, src_gray, 900, 890, 3);
Canny(src_gray, src_gray, 20, 60, 3);

尝试不同的阈值组合

相关内容

  • 没有找到相关文章

最新更新