Проективная трансформация: найти новое пиксельное местоположение MATLAB - PullRequest
0 голосов
/ 28 июня 2018

Я преобразую свои изображения, используя защитную матрицу преобразования. Я получаю свое преобразование, выполняя следующие действия, где a - это 4 фиксированные точки, а b - 4 движущиеся точки.

my_tform    = fitgeotrans(a,b,'projective');

Затем я преобразовываю свои изображения, используя imwarp и мою матрицу преобразования my_tform следующим образом:

newImage = imwarp(Im,my_tform,'cubic','OutputView', imref2d( size(Im) ));

Это работает очень хорошо. Проблема, с которой я столкнулся, заключается в том, что я хочу узнать новое местоположение пикселя по заданному местоположению в пикселях до преобразования. Мне нужен быстрый код, так как я буду делать это для каждого пикселя изображения. В основном, с учетом местоположения, такого как (256 256) на исходном изображении, каково новое местоположение на преобразованном изображении?

Пожалуйста, смотрите следующий пример изображения ниже. Справа - исходное изображение, а слева - преобразованное изображение. Подсказка к данным - один и тот же пиксель на обоих изображениях, но в разных местах. Я хочу знать, как я могу пойти между этими двумя. Before and after transformation

...