Моя цель - правильно сегментировать символы на изображении
Мое изображение выглядит так: ![enter image description here](https://i.stack.imgur.com/wmTZi.jpg)
Как правильно сегментировать подключенные B иW?Также мой код, кажется, обнаружил, что 750 все также связаны.Как мне их сегментировать?
Какое преобразование я должен применить?Я пытался разрушить, но это не помогло?Как выбирается размер ядра для такого изображения?Как мне убрать помехи на 5 и M?
Какие изменения я должен внести в свой код, чтобы правильно сегментировать и изолировать каждый символ?Код:
img = cv2.imread('C:\\xx\\testimages\\X\\plate4.jpg', 0)
cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU,img)
image, contours, hier = cv2.findContours(img, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)
contours = sorted(contours, key=lambda ctr: cv2.boundingRect(ctr)[0])
d=0
for ctr in contours:
# Get bounding box
x, y, w, h = cv2.boundingRect(ctr)
# Getting ROI
if w>20 and h>20 and w<60: #Boundary conditions to isolate a character
print(x, y, w, h)
roi = image[y:y+h, x:x+w]
#roi=cv2.resize(roi,(20,35))
#kernel = np.ones((3,3), np.uint8)
#roi = cv2.morphologyEx(roi, cv2.MORPH_CLOSE, kernel)
#roi = cv2.erode(roi, kernel, iterations=1)
# kernel_1=np.ones((1,1),np.uint8)
# roi=cv2.dilate(roi,kernel,iterations=1)
cv2.imshow('character: %d' % d, roi)
cv2.imwrite('C:\\xx\\ValidationSet\\character_%d.png'%d, roi)
cv2.waitKey(0)
cv2.destroyAllWindows()
d+=1