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

。
我尝试了调整对比度和亮度,平滑(如GaussianBlur,中介模糊)和阈值技术(如Otsu)与OpenCV,仍然有很多剩余的噪声。
还有什么我可以试试的吗?
发布于 2019-11-07 02:30:03
您可以尝试混合高斯模糊、阈值和形态学操作来分离文本。这是一条管道
模糊->阈值->按位打开->扩展->





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()发布于 2019-11-07 07:48:14
如果需要更通用的解决方案,请继续阅读。否则,你可以参考纳坦西的答案,或在这个网站上的许多其他答案。
我想
从图像中提取文本
意味着您希望将此图像中的文本作为字符串或文本的ROI。
这就是所谓的OCR (光学字符识别),这是一个非常复杂的深入学习问题,专门针对你发布的图像类型(噪音、低清晰度、低动态范围等)。如果您正在寻找一个普通的OpenCV库,它可以不受限制地执行此操作,那么据我所知,这里没有。
查看这些链接以获得源代码和解释-
https://stackoverflow.com/questions/58739151
复制相似问题