Osi*_*ris 12 opencv image-processing emgucv
在EmguCV中应用于图像进行文本识别的最佳图像预处理操作是什么?
我在这里包含了两个样本图像.
应用低通或高通滤波器将不合适,因为文本可以是任何尺寸.我尝试了中位数和双边滤波器,但它们似乎并没有太大影响图像.
理想的结果是二进制图像,所有文本都是白色的,其余大部分是黑色的.然后将该图像发送到OCR引擎.
谢谢
kar*_*lip 17
没有什么比最好的了.请记住,数字图像可以通过不同的捕获设备获取,每个设备都可以嵌入自己的预处理系统(过滤器)和其他可以彻底改变图像甚至为它们添加噪声的特性.因此,每个案例都必须以不同方式对待(预处理).
然而,存在可用于改进检测的通用操作,例如,非常基本的操作是将图像转换为灰度并应用阈值来对图像进行二值化.我之前使用的另一种技术是边界框,它允许您检测文本区域.要从图像中去除噪声,您可能会对侵蚀/扩张操作感兴趣.我在这篇文章中演示了一些这些操作.
此外,还有其他有关OCR和OpenCV的有趣帖子,你应该看看:
现在,只是为了向您展示可以与样本图像一起使用的简单方法,这是反转颜色并应用阈值的结果:

cv::Mat new_img = cv::imread(argv[1]);
cv::bitwise_not(new_img, new_img);
double thres = 100;
double color = 255;
cv::threshold(new_img, new_img, thres, color, CV_THRESH_BINARY);
cv::imwrite("inv_thres.png", new_img);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42701 次 |
| 最近记录: |