首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中区分前景文本和噪声背景?

如何在Python中区分前景文本和噪声背景?
EN

Stack Overflow用户
提问于 2019-11-06 22:02:08
回答 2查看 913关注 0票数 2

我正在尝试从这张图片中提取文本。

我尝试了调整对比度和亮度,平滑(如GaussianBlur,中介模糊)和阈值技术(如Otsu)与OpenCV,仍然有很多剩余的噪声。

还有什么我可以试试的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-07 02:30:03

您可以尝试混合高斯模糊、阈值和形态学操作来分离文本。这是一条管道

模糊->阈值->按位打开->扩展->

代码语言:javascript
复制
import cv2

image = cv2.imread('1.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (7,7), 0)
thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5,2))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=3)

# Repair text
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (7,7))
dilate = cv2.dilate(opening, kernel, iterations=2)

# Bitwise-and with input image
result = cv2.bitwise_and(image,image,mask=dilate)
result[dilate==0] = (255,255,255)

cv2.imshow('thresh', thresh)
cv2.imshow('opening', opening)
cv2.imshow('dilate', dilate)
cv2.imshow('result', result)
cv2.waitKey()
票数 2
EN

Stack Overflow用户

发布于 2019-11-07 07:48:14

如果需要更通用的解决方案,请继续阅读。否则,你可以参考纳坦西的答案,或在这个网站上的许多其他答案。

我想

从图像中提取文本

意味着您希望将此图像中的文本作为字符串或文本的ROI。

这就是所谓的OCR (光学字符识别),这是一个非常复杂的深入学习问题,专门针对你发布的图像类型(噪音、低清晰度、低动态范围等)。如果您正在寻找一个普通的OpenCV库,它可以不受限制地执行此操作,那么据我所知,这里没有。

查看这些链接以获得源代码和解释-

  1. 吡虫啉OCR
  2. 基于EAST的文本ROI检测
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58739151

复制
相关文章

相似问题

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