如何将图像中所有文本的强度(暗度)提高到一个级别?

How to get the intensity (darkness) of all the text in an image to one level?

我已经使用 Pytesseract 和 openCV 从图像中读取文本。我使用中值模糊、归一化和阈值来去除背景并能够阅读文本。

然而,文本的某些部分在标准化过程中变得太亮,我希望将它们变暗,以便它们与图像中剩余文本的 darkness/intensity 相匹配。我尝试了形态变换并尝试了 canny+erosion 来消除噪音,但这些都没有帮助。

我的输入是这样的:

在这里,"Code"、"Division Name"、“15”和"Mechanical"比较轻,我无法阅读它们,而我很容易阅读"Air Distribution" 和 "Basic materials & methods".

任何有关如何更改较浅文本颜色的帮助都会非常有帮助。

您可以更改阈值,然后在黑底白字图像中应用腐蚀。

import cv2
import numpy as np

image = cv2.imread("1.png")

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

blur = cv2.blur(gray,(3,3))

_,thresh = cv2.threshold(blur,240,255,cv2.THRESH_BINARY)
cv2.imshow("thresh",thresh)

thresh = cv2.bitwise_not(thresh)

element = cv2.getStructuringElement(shape=cv2.MORPH_RECT, ksize=(5, 5))

erode = cv2.erode(thresh,element,3)
cv2.imshow("erode",erode)

cv2.imshow("img",image)
cv2.waitKey(0)
cv2.destroyAllWindows()