Matlab - Как преобразовать точки с искаженным изображением - PullRequest
0 голосов
/ 23 октября 2019

У меня есть два одинаковых изображения, но одно было переведено. Мой код должен найти преобразование между ними, но я уже достиг этого.

Теперь у меня есть проблема с визуализацией, я хочу преобразовать оба изображения так, чтобы они находились под одним углом, построить оба изображения и затемнанесите один и тот же набор точек на оба, но я не могу понять, как определить относительные координаты точек на исправленном втором изображении.

Мой код приведен ниже:

% tform is an Affine2D Transform between img1 and img2
% img1 and img2 are rgb images
% points is a 10x2 matrix containing a set of points on img1
figure();
subplot(1, 2, 1);
hold on;
imshow(img1);
plot(points(:, 1), points(:, 2), '.r')
hold off;
transformedPoints = [Don't Know what goes here...]
img2t = iwarp(img2, invert(tform))
subplot(1, 2, 2);
hold on;
imshow(img2t);
plot(transformedPoints(:, 1), transformedPoints(:, 2), '.r')
hold off;

1 Ответ

0 голосов
/ 23 октября 2019

Решив, imwarp может вернуть объект im2dref, который вы можете использовать с worldToIntrinsic

[img2t, ref] = imwarp(img2, invert(tform));
[transformedPointsX, transformedPointsY] = worldToIntrinsic(ref, points(:, 1), points(:, 2));
...