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

Python 3.x 如何将图像中所有文本的强度(暗度)提高到一个级别?,python-3.x,opencv,ocr,spyder,python-tesseract,Python 3.x,Opencv,Ocr,Spyder,Python Tesseract,我使用Pytesseract和openCV从图像中读取文本。我使用了中值模糊、标准化和阈值来去除背景,并且能够阅读文本 但是,文本的某些部分在标准化过程中变得太亮,我希望将它们变暗,以便它们与图像中剩余文本的暗度/强度相匹配。我尝试了形态变换和canny+腐蚀来消除噪音,但这两种方法都没有效果 我的输入如下所示: 在这里,“代码”、“部门名称”、“15”和“机械”较轻,我无法阅读,而我可以轻松阅读“空气分配”和“基本材料和方法” 任何关于如何更改较浅文本颜色的帮助都将非常有用 您可以更改阈值,

我使用Pytesseract和openCV从图像中读取文本。我使用了中值模糊、标准化和阈值来去除背景,并且能够阅读文本

但是,文本的某些部分在标准化过程中变得太亮,我希望将它们变暗,以便它们与图像中剩余文本的暗度/强度相匹配。我尝试了形态变换和canny+腐蚀来消除噪音,但这两种方法都没有效果

我的输入如下所示:

在这里,“代码”、“部门名称”、“15”和“机械”较轻,我无法阅读,而我可以轻松阅读“空气分配”和“基本材料和方法”


任何关于如何更改较浅文本颜色的帮助都将非常有用

您可以更改阈值,然后在黑底图像的白色文本中应用腐蚀

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()

您可以更改阈值,然后在黑底图像的白色文本中应用腐蚀

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()

谢谢,但我仍然无法检测到那些较轻的零件。我只是告诉您如何通过调整阈值使较轻的零件可见。我很难知道你到底在做什么。是的,我明白。我使用有趣的OCR引擎从图像中读取文本,附加的图像是较大图像的一部分。我只是无法读取较亮的部分,即使我将其变暗(采用您的解决方案),也尝试消除噪音,但似乎没有帮助。谢谢您,但我仍然无法检测到较亮的部分。我只是向您展示如何通过调整阈值使较亮的部分可见。我很难知道你到底在做什么。是的,我明白。我使用有趣的OCR引擎从图像中读取文本,附加的图像是较大图像的一部分。我只是看不懂较亮的部分,即使我把它调暗了(用你的解决方案),也尝试过消除噪音,但似乎没有帮助为什么我的问题被否决了?为什么我的问题被否决了?苏普利辛。