簡體   English   中英

卡邊緣檢測OpenCV

[英]Card edge detection OpenCV

我遵循了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的最佳值以獲得更好的結果。 這里

您的閾值太高。 所以代替Canny(src_gray, src_gray, 900, 890, 3); 嘗試使用以下

Canny(src_gray, src_gray, 20, 60, 3);

也可以嘗試使用不同的閾值組合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM