我遵循了OpenCV网站上有关Canny Edge Detector的教程,但结果一直很差,并且对其工作方式非常困惑。我使用它来检测名片上的边缘,然后根据结果进行裁切。
我正在使用此代码,它带给我的全黑图像只有几个白色像素。该代码基于文档。
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的最佳值以获得更好的结果。看HERE
关于c++ - 卡边缘检测OpenCV,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22470048/