我试图在图像中找到文本的边界框,并且目前正在使用这种方法:
// calculate the local variances of the grayscale image Mat t_mean, t_mean_2; Mat grayF; outImg_gray.convertTo(grayF, CV_32F); int winSize = 35; blur(grayF, t_mean, cv::Size(winSize,winSize)); blur(grayF.mul(grayF), t_mean_2, cv::Size(winSize,winSize)); Mat varMat = t_mean_2 - t_mean.mul(t_mean); varMat.convertTo(varMat, CV_8U); // threshold the high variance regions Mat varMatRegions = varMat > 100;
当给出这样的图像时:
在此处输入图片说明
然后,当我显示varMatRegions我得到此图像时:
如您所见,它在某种程度上将文本的左边部分与卡的标题结合在一起,对于大多数卡来说,这种方法效果很好,但在繁忙的卡上它可能会引起问题。
这些轮廓连接不好的原因是,它使轮廓的边界框几乎占据了整个卡。
谁能建议我以其他方式找到文本以确保正确检测文本?
凡在这两张卡片上方都能找到文字的人,可获得200分。
在此处输入图片说明 在此处输入图片说明