Применение гомографии к набору точек и отображение точек на искаженном изображении - PullRequest
0 голосов
/ 08 октября 2019

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

Как правильно отобразить набор точек, которые я перенесу, используя ту же гомографию на деформированном изображении?

close all

img = imread('test2.jpg');

pts_img = [[1612.6 2509.3]; [4002.5 2393]; [3557.3 1040.9]; [1684.1 1050.7]]';
pts_world = 100*[[0 0]; [10 0]; [10 8]; [0 8]]';

tform = fitgeotrans(pts_img', pts_world','projective');

warped_img = imwarp(img, tform);

pts_img_h = [pts_img; ones(1,size(pts_img,2))]; % convert to homogeneous coordinates 

H = tform.T';  % homography matrix

% transform pts_img using the homography matrix
pts_t_h = H*pts_img_h;
% converting to image coordinates
pts_t = pts_t_h(1:end-1,:) ./ repmat(pts_t_h(end,:), size(pts_t_h,1)-1, 1);

figure(1)
imshow(warped_img);
figure(2)
warped_img_marked = insertMarker(warped_img, pts_t', 'o', 'size', 10);
imshow(warped_img_marked);

figure(3)
imshow(img);
figure(4)
img_marked = insertMarker(img, pts_img', 'o', 'size', 10);
imshow(img_marked);

Есть ли способ отображения преобразованных точек на деформированном изображении? original image warped image

Любая помощьбыл бы очень признателен!

...