[英]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.