получить матрицу преобразования из контрольных точек

Мы можем построить структуру TFORM, используя контрольные точки с помощью функции cp2tform, однако мне интересно, можем ли мы получить явную форму матрицы преобразования, а не структуру TFORM, чтобы я мог вычислить размер пикселя преобразованного изображение из исходного изображения, где размер пикселя dx не равен dy.


person chaohuang    schedule 17.06.2012    source источник


Ответы (1)


Если TFORM - это возвращенная структура, вы можете получить доступ к матрицам преобразования как:

TFORM.tdata.T

а также

TFORM.tdata.Tinv

один для прямого преобразования, другой - для обратного.

Вы можете отредактировать maketform.m файл в панели инструментов IPT и посмотреть, как они используются внутри.

person Amro    schedule 17.06.2012
comment
Кстати, вам также следует изучить параметры функции imtransform (относительно размера преобразованного изображения) - person Amro; 18.06.2012
comment
Имейте в виду, что в некоторых случаях это не сработает. maketform может быть вызван с помощью пользовательской анонимной функции, в этом случае tdata может быть любым - person Andrey Rubshtein; 18.06.2012
comment
@Andrey: хм, тогда возникает вопрос, есть ли случаи, когда cp2tform вызывает maketform с пользовательским преобразованием? - person Amro; 18.06.2012
comment
Да, например, в режиме polynomial это будет c.tdata, а не c.tdata.T - person Andrey Rubshtein; 18.06.2012