шум, когда я использую cv2.connectedComponentsWithStats - PullRequest
1 голос
/ 11 апреля 2020

Я хотел извлечь буквы из этого изображения: enter image description here

, когда я пытался использовать connectedComponentsWithStats, у меня было много ярлыков, но они были шумными, как в этом примере: enter image description here это часть моего кода, которая должна извлекать буквы:

def ExtractLetters(img):
    blur_radius = 0.1
    nlabel, labels,stats,centroids = cv2.connectedComponentsWithStats(img)
    thresh_size=30
    for i in range(1, nlabel):
        img = np.zeros(img.shape, dtype=np.uint8)
        if (stats[i, cv2.CC_STAT_WIDTH] > thresh_size) or (stats[i, cv2.CC_STAT_HEIGHT]>thresh_size):
            img[labels == i] = 255
            img = 255 - img
            cv2.imshow("test", img)
            cv2.waitKey()

Знаете ли вы, почему появляются эти шумы?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2020

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

Установка порогового значения изображения перед выполнением анализа подключенных компонентов решит вашу проблему.

1 голос
/ 11 апреля 2020

Прежде чем найти connectedComponentsWithStats, необходимо преобразовать изображение RGBA в градации серого и пороговое значение.

...