我有这些图像
enter image description here
enter image description here
我想从这些图像中去除噪声,这样我就可以使用pytesseract将它们转换为文本。噪声只有蓝色,所以我尝试从图像中去除蓝色。仍然没有好的效果。
This is what I did
import cv2
import pytesseract
# Extract the blue channel
blue = img[:, :, 0]
# Apply thresholding to the blue channel
thresh = cv2.threshold(blue, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1]
# Perform morphological operations to remove noise
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1,1))
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=7)
# Apply blur to smooth out the image
blur = opening#cv2.medianBlur(opening, 1)
cv2.imwrite("/Users/arjunmalik/Desktop/blur.png",blur)
display("/Users/arjunmalik/Desktop/blur.png")
结果是
enter image description here
OCR结果为FL1S4y。
1条答案
按热度按时间ivqmmu1c1#
正如Sembei所说,您需要使用一个封闭操作符,这是必须的情况下,因为你想关闭对象上的黑点,以提高图像质量。
您可以将代码修改为这样的代码,以实现第二个图像的以下输出。
Result
您可能需要为不同的输入图像更改内核的大小。
我认为如果你在应用关闭操作符之前先做字符分割会更好,以达到最好的效果。