我在Matlab上使用imwarp
函数来转换关于转换的图像。
您可以在下面的图片中看到结果:
我的目标是创建一个函数,其中在输入中我给出左图片的坐标(以像素为单位),它在输出中返回相同点的坐标,但在右图中...
有人知道imwarp
函数是否逐个计算相应的坐标...我不知道它是如何工作的!
答案 0 :(得分:2)
您应该使用传递给imwarp
的{{3}}将任何像素坐标转换为新的转化位置
image = imread('cameraman.tif');
% Create a transformation object
tform = affine2d([1 0 0; .5 1 0; 0 0 1]);
% Warp the image using this transformation
[transformed_image, RB] = imwarp(image, tform);
% Transform pixel coordinates to new coordinates using tform
[xw, yw] = tform.transformPointsForward(100, 100);
% Display the points and transformed points
subplot(1,2,1);
imshow(image, []);
hold on
plot(100, 100, 'r*')
subplot(1,2,2)
imshow(transformed_image, []);
hold on
plot(xw, yw, 'r*');