python - 使用 cv2 填充字符中的空白
问题描述
我有一个带有文本的图像文件,我想使用 OCR 提取它。但它上面有一条对角重叠的文本行(右上角),例如. 我删除这条线使用,
image = cv2.imread(image_path)
image = cv2.resize(image, None, fx=2, fy=2, interpolation=cv2.INTER_CUBIC)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = cv2.GaussianBlur(image, (5, 5), 0)
image = cv2.threshold(image, 100, 255, cv2.THRESH_BINARY)[1] # 100 here as the diagonal line is grey
注意剪切应力的粗字符,它是对角线重叠的区域之一。现在我应用 OCR。但是,前面的步骤会删除一些像素。例如,边缘位错中的e不完整。
这会导致糟糕的结果,例如“edve 错位”。我尝试了腐蚀和膨胀,但没有明显改善。
有什么办法可以填补角色的空缺吗?
有什么办法可以减少与对角线重叠的字符的厚度?
解决方案
因为在图像中,如果您看到,我们可以将暗区(黑色)从 2^0 = 0 表示到亮区(白色) 2^8 = 256 。所以你可以尝试一件事(我也不确定):
img = cv2.imread(image_path,0)
new_img = img.copy()
new_img[new_img<=230] = 0 ## just try to change that 230 value to anywhere b/w 150 to 230
然后尝试使用 OCR 检查它是否真的有效。
-- 删除重叠后将其应用于图像的结果
推荐阅读
- cassandra - Cassandra - 在另一个集群中创建一个表的“读取”版本
- python - 如何通过 Selenium Python 单击表格中的元素
- swift - IBOutlet UIButton SIGABRT
- c++ - 阻止 cin 继续接受输入
- dialogflow-es - LocationPermission 上下文中的 SSML
- linux - 创建可以导入变量并针对来自外部文本文件的变量执行代码的 bash 脚本
- angular - 覆盖离子4中的工具栏后退按钮操作
- splunk - 带有 where 子句的 Splunk 搜索查询不起作用
- excel - 如何使用 LDAP 从 excel VBA 连接到 Oracle 数据库?
- r - bookdown::html_document2 中数据框分页打印的表格标题