我试图在图像中找到文本的边界框,目前正在使用这种方法:
// 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;
Run Code Online (Sandbox Code Playgroud)
给出这样的图像时:

然后,当我显示varMatRegions我得到这个图像:

正如你所看到的那样,它将左侧的文本块与卡片的标题结合起来,对于大多数卡片而言,这种方法效果很好,但在较繁忙的卡片上它可能会导致问题.
这些轮廓连接不好的原因是它使得轮廓的边界框几乎占据了整个卡片.
任何人都可以建议一种不同的方式来查找文本以确保正确检测文本吗?
200分,谁能在这两张卡上方找到文字.

任何人都可以描述我如何使用opencv或simplecv在python中实现SWT?
我有一个问题,我必须从监控摄像机录制的视频中读取录制时间.
时间显示在视频的左上角区域.下面是显示时间区域的屏幕抓取链接.此外,数字颜色(白色/黑色)在视频持续时间内不断变化.
http://i55.tinypic.com/2j5gca8.png
请指导我解决这个问题.我是一名Java程序员,所以更喜欢通过Java的方法.
编辑: 感谢unhillbilly的评论.我查看了Ron Cemer OCR库,其性能远低于我们的要求.
由于ocr性能低于预期,我计划使用屏幕抓取为所有数字构建字符集,并使用一些图像/像素比较库将帧时间与字符集进行比较,字符集将显示概率结果经过比较.
所以我一直在寻找一个好的图像比较库(我可以使用非java库,我可以使用命令行运行).对上述方法的任何建议都会非常有帮助.