Выровняйте изображения правильно - PullRequest
0 голосов
/ 16 ноября 2018

Привет. Я пытаюсь получить рукописные данные только из изображения, для этого я взял пустое и заполненное изображение, а затем я делаю ImageChops.difference, чтобы извлечь из него данные.Проблема сейчас в выравнивании изображений, оба не одинаково выровнены по глубине, поэтому результаты неверны.

из PIL import Image, ImageChops

def compare_images(path_one, path_two, diff_save_location):
    """
    Compares to images and saves a diff image, if there
    is a difference

    @param: path_one: The path to the first image
    @param: path_two: The path to the second image
    """
    image_one = Image.open(path_one).convert('LA')
    image_two = Image.open(path_two).convert('LA')

    diff = ImageChops.difference(image_one, image_two)
    if diff.getbbox():
        diff.convert('RGB').save(diff_save_location)


if __name__ == '__main__':
    compare_images('images/blank.jpg',
                   'images/filled.jpg',
                   'images/diff.jpg')

Это результат, который я получил.enter image description here

результат, который я ищу: enter image description here

Может кто-нибудь помочь мне с этим.Спасибо.

1 Ответ

0 голосов
/ 16 ноября 2018

Этот сайт может быть полезен: https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/.Основная идея заключается в том, чтобы сначала обнаружить ключевые точки, используя SIFT, SURF или другие алгоритмы на обоих изображениях;затем сопоставьте ключевые точки из пустого изображения с ключевыми точками из рукописного изображения, чтобы получить матрицу гомографии;затем используйте эту матрицу для выравнивания двух изображений.

После выравнивания изображения может потребоваться последующая обработка из-за освещения или шума.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...