【问题标题】:MATLAB: projective transformationsMATLAB:射影变换
【发布时间】:2013-02-13 17:46:00
【问题描述】:

我有一张照片

我想通过像这样向后移动来获得投影变换:

但我能看到的唯一结果是:

我找不到我的错误。我的代码(A - 我要转换的图片):

p=0.25;
a=p*rows(A);

U = @(m, n) ([1 1; 1 m; n 1; n m]);
V = @(m, n) ([1+a 1+a; 1-a m-a; n-a 1+a; n+a m-a]);


D=transform(A, U(rows(A), cols(A)),...
               V(rows(A), cols(A)),...
               'projective');
imshow(D)

function B=transform(A,U,V,type)
[m n] = size(A)
tform = maketform(type,U,V);  
B = imtransform(A,tform,'size',[m n]);

【问题讨论】:

    标签: matlab transformation projective-geometry


    【解决方案1】:

    您的轴的“方向”似乎混淆了。试试这个映射:

    V = @(m, n) ([1+a 1-a; 1+a m+a; n-a 1+a; n-a m-a]);
    

    对于黑色背景,您可以通过在imtransform 上设置一些参数/值对来修复它

    (可惜我电脑上没有matlab,所以不能保证映射的正确性,明天再检查,如果不对的话更新一下)

    【讨论】:

    • 还是不想要我想要的。但是,当我在脑海中编译您的代码时,matlab 给了我我所期望的和我的代码 - 不是...
    • 如何进行倒转过程?
    猜你喜欢
    • 1970-01-01
    • 2016-01-07
    • 2015-05-11
    • 1970-01-01
    • 2014-05-27
    • 2018-09-07
    • 2010-09-15
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多