我正在处理分离数字验证码的数量以训练卷积神经网络的问题。为了实现这一目标,我尝试将不同的阈值方法与侵蚀和扩张结合使用以改善结果。到目前为止,大津的阈值给了我最好的结果。在一些图像中,我得到了相当不错的结果,但其他人甚至对人类都很困难。一些例子:
效果不错:
结果不好:
我想知道是否有任何改善图像结果的方法,如第二个。我没有使用简历的任何经验,这是我的第一次接触。以下是其他一些图片示例:
此外,这是python代码:
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
# Read image and resize
img = cv.imread('img.jpg',0)
img = cv.resize(img, (0,0), fx = 3, fy =3)
# Otsu's thresholding after Gaussian filtering
blur = cv.GaussianBlur(img,(5,5),0)
ret3,th3 = cv.threshold(blur,0,255,cv.THRESH_BINARY+cv.THRESH_OTSU)
#_, count, h= cv.findContours(th3, cv.RETR_TREE, cv.CHAIN_APPROX_SIMPLE)
#cv.drawContours(th3, count, -1, (0,255,0),4)
#Erode, dilate and closing
kernel = np.ones((5,5), np.uint8)
th3 = cv.erode(th3, kernel, iterations=1)
th3 = cv.dilate(th3, kernel, iterations=1)
th3 = cv.morphologyEx(th3, cv.MORPH_CLOSE, kernel, iterations=1)
plt.imshow(255-th3, 'gray')
plt.show()
非常感谢