找到鱼眼图像中的像素位移

时间:2017-04-26 08:23:34

标签: matlab image-processing

我试图根据距图像中心的半径绘制像素从原始图像到鱼眼图像的位移。

我使用maketform

成功地在MATLAB中制作鱼类图像
testImg = imread('ship.jpg');
optTra = maketform('custom',2,2,[],@radial,options);
newX = imtransform(testImg,optTra);
imshow(newX);

这里的radial功能可以帮助我获得鱼眼扭曲的图像。

我需要找到原始图像中每个像素的位移与失真图像的位移。

1 个答案:

答案 0 :(得分:1)

如果应用的变换(a.k.a“@radial”)是有角度的,则逆变换由下式给出:

u = r cos(phi) + 0.5;
v = r sin(phi) + 0.5;

,其中

r = atan2(sqrt(x*x+y*y),p.z)/pi;
phi = atan2(y,x);
假设x,y是标准化坐标(居中且在-1到1之间)。