Нарисуйте контуры на изображении красной пластины

Привет, я работаю над программой, которая требует найти контуры номерного знака, с номерными знаками все было хорошо, но когда я пытаюсь получить контуры красного номера, он не показывает контуры должным образом, я проверяю все результат преобразования изображения в серый, затем размытие изображения и затем порог изображения для реализации контуров поиска, и это изображения:

исходное изображение:

изображение в градациях серого:

порог изображения:

найти контуры:

как показано на изображении, я хочу получить контуры вокруг арабских чисел, но порог вокруг числа белый и черный внутри, поэтому он не окружает их идеально

как это изображение:

Это мой код для обработки двух изображений:

image = cv2.imread('red_image3.jpg')

gray_image = extractValue(image)

imgMaxContrastGrayscale = maximizeContrast(gray_image)


imgBlurred = cv2.GaussianBlur(imgMaxContrastGrayscale, (3,3), 0)

imgThresh = cv2.adaptiveThreshold(imgBlurred, 255.0, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV,
                                  17, 9)
contours, _ = cv2.findContours(imgThresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)

for contour in contours :
    (x,y,w,h) = cv2.boundingRect(contour)
    cv2.rectangle(image , (x,y) , (x+w,y+h),(0,255,0), thickness=1)

0 ответов

Другие вопросы по тегам