Как применить матрицу вращения R (3 * 3) и векторный перевод T (3 * 1) к изображению в Matlab?

У меня есть два изображения I1 и I2, и я получаю матрицу вращения R (3*3) и вектор перевода T (3*1) между этими двумя изображениями. Теперь я хочу применить эти R и T к I1, чтобы получить выровненное изображение J из I1. Я пробую этот код, но не работает:

J=(I1.*R)+T; 

помогите пожалуйста


person PhD Ma    schedule 24.03.2017    source источник


Ответы (1)


Вы должны удалить точку и сделать это так:

J=(R*I1)+T; 

Операция .* является входным произведением, а вам нужно обычное умножение матриц.

person Miriam Farber    schedule 24.03.2017
comment
У меня всегда одно и то же сообщение об ошибке, даже с (R * I1) + T, I1 имеет размер N * M * 3, в этом проблема?? - person PhD Ma; 24.03.2017
comment
В таком случае размеры просто не совпадают. Вы не можете применить матрицу вращения 3 на 3 к изображению размером N на M на 3. - person Miriam Farber; 24.03.2017