首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除OCR python图像的中断部分

删除OCR python图像的中断部分
EN

Stack Overflow用户
提问于 2020-03-14 16:57:22
回答 1查看 76关注 0票数 0

我是图像处理的新手,想做数字图像的光学字符识别,但是其中一些很难识别,比如这个:img

我尝试了二值化,但效果不够好,所以有没有其他方法可以删除圆圈和中心星号?谢谢!code

输出:Shee ar

预期输出:891972

EN

回答 1

Stack Overflow用户

发布于 2020-03-14 17:22:31

尝试使用tesseract,一个谷歌的OCR引擎,它在做OCR时会很有帮助。

尝试使用此方法删除背景

代码语言:javascript
运行
复制
import cv2
import numpy as np
from matplotlib import pyplot as plt
image_bgr = cv2.imread('images/plane_256x256.jpg')
image_rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB)
rectangle = (0, 56, 256, 150)
 Create initial mask
mask = np.zeros(image_rgb.shape[:2], np.uint8)

# Create temporary arrays used by grabCut
bgdModel = np.zeros((1, 65), np.float64)
fgdModel = np.zeros((1, 65), np.float64)

# Run grabCut
cv2.grabCut(image_rgb, # Our image
            mask, # The Mask
            rectangle, # Our rectangle
        bgdModel, # Temporary array for background
        fgdModel, # Temporary array for background
        5, # Number of iterations
        cv2.GC_INIT_WITH_RECT) # Initiative using our rectangle

# Create mask where sure and likely backgrounds set to 0, otherwise 1
mask_2 = np.where((mask==2) | (mask==0), 0, 1).astype('uint8')


# Multiply image with new mask to subtract background
image_rgb_nobg = image_rgb * mask_2[:, :, np.newaxis]

plt.imshow(image_rgb_nobg), plt.axis("off")
plt.show()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60681161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档