Преобразование изображения на основе 3 баллов - PullRequest
1 голос
/ 11 ноября 2019

Я хочу преобразовать (перевести, повернуть и масштабировать) изображение на основе 3 точек, определенных на обоих перекрывающихся изображениях. Основываясь на пиксельных координатах 3 точек, я хочу создать большой tiff, который объединяет две. Для следующего наложения я хочу сделать то же самое и т. Д., Пока я не получу большой тиф, который объединяет все картинки. Это немного похоже на географическую привязку, но без использования координат. Проблема в том, что у меня нет опыта matplotlib. До сих пор я создал скрипт, который показывает каждую пару перекрывающихся изображений рядом друг с другом, и когда я закрываю окно, открывается следующая пара и т. Д. Мне также удалось получить координаты пикселей по нажатым точкам на этих изображениях. Но теперь я должен начать преобразование, основанное на 3 точках, и я просто не знаю, с чего начать. Любая помощь по используемым функциям и т. Д .?

РЕДАКТИРОВАТЬ: изображения являются тепловыми изображениями низкого разрешения, поэтому я не думаю, что автоматические преобразования будут работать

1 Ответ

1 голос
/ 11 ноября 2019

Вы можете использовать wand, который является привязкой Python к ImageMagick . Итак, начнем с этого изображения:

enter image description here

Мы можем исказить красную вершину (138,80) в верхний левый угол, зеленый (43, 22) слева внизу и синее (49 125) внизу справа, вот так (изображение 152x152):

#!/usr/bin/env python3

from wand.image import Image

# Open image and distort, giving start x,y and end x,y for 3 points
with Image(filename='start.png') as img:
    points = (138, 80, 0, 0,        # Red vertex
               43, 22, 0,152,       # Green vertex
               49,125, 152,152)     # Blue vertex
    img.distort('affine',points)

    # Save result
    img.save(filename='result.png')

enter image description here


Вы можете сделать то же самое в терминале из командной строки:

magick start.png -distort affine "138,80 0,0 43,22 0,152 49,125 152,152" result.png

Ключевые слова : обработка изображений, Python, искажение, искажение, аффинное преобразование, преобразование, масштабировать, вращать, ImageMagick.

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