【发布时间】:2019-02-21 18:13:33
【问题描述】:
我尝试使用 opencv 从验证码图像中获取文本。 问题是文本被噪声掩盖了,用这些水平线/噪声处理起来很复杂。
原图
我处理后的图像:
不知道如何删除这些水平线并获取文本
代码:
import numpy as np
import cv2
# Load an color image in grayscale
img = cv2.imread('captcha.jpg',0)
#display image in window
#cv2.imshow('image',img) #@param - windowname, image to be displayed
horizontal_inv = cv2.bitwise_not(img)
#perform bitwise_and to mask the lines with provided mask
masked_img = cv2.bitwise_and(img, img, mask=horizontal_inv)
#reverse the image back to normal
masked_img_inv = cv2.bitwise_not(masked_img)
cv2.imshow("masked img", masked_img_inv)
cv2.imwrite("result2.jpg", masked_img_inv)
cv2.waitKey(0) # time for window to show image in milliseconds - 0 is infinite wait
cv2.destroyAllWindows()
编辑:如果文本是浅色的,如何处理
【问题讨论】:
-
你最好保留这些线并跟随它们获得变形场。拉直后,擦除会更容易,但更重要的是,字符会恢复。
标签: python-3.x opencv image-processing