【数字图像处理】3D到2D的投影(Octave/Matlab)

从现实世界到图像的投影坐标系:

(x, y, z)→(x', y', -d),注意这个示意图中不包含左右,上下的翻转变化。

根据相似三角形理论可以算出:(x, y, z)→(-dx/z, -dy/z, -d), 由于z是变量,所以这并不是一个线性变换。加入一个齐次项,在齐次坐标系下,我们可以通过矩阵的线性操作完成投影。

代码如下:

% Project a point from 3D to 2D using a matrix operation

%% Given: Point p in 3-space [x y z], and focal length f
%% Return: Location of projected point on 2D image plane [u v]


%% Test: Given point and focal length (units: mm)
p = [200 100 120];
f = 50;

function p_img = project_point(p, f)
    %% TODO: Define and apply projection matrix
    A = [f 0 0 0;
         0 f 0 0;
         0 0 1 0];
    p_hom = [p 1]';
    p_proj = A * p_hom;
    %disp(p_proj(2)/p_proj(3));
    p_img = [(p_proj(1)/p_proj(3)),(p_proj(2)/p_proj(3))];
endfunction

%% Test: Given point and focal length (units: mm)
p = [200 100 100];
f = 50;

pimg = project_point(p, f);
disp(pimg);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值