matlab练习程序(弧形、圆柱投影的复原)

前一段介绍了从矩形图像到圆柱的正向投影,看这里这里。今天介绍如何从已经投影的图像反映射到原图像上。

本来此种变换一定是需要数学公式的,不过这里只是用了一个很简单的方式来完成反映射。

具体就把每一列有像素数据的长度拉伸到原图像的高就行了。

原图像是这样:

matlab练习程序(弧形、圆柱投影的复原)

处理后:

matlab练习程序(弧形、圆柱投影的复原)

看着感觉还可以,不过这样显然是不合数学公式的,和最原始的图比较一下就看出来差别了:

matlab练习程序(弧形、圆柱投影的复原)

matlab代码如下:

clear all;close all;clc;



img=imread('re.bmp');

[h w]=size(img);

imshow(img);



for x=1:w

    p=[];

    for y=1:h

        if img(y,x)~=0

            p=[img(y,x) p];

        end

    end

   

    s=imresize(p,[1,h]);

    img(:,x)=s;

   

end



newh=256;

neww=256;

imgn=imresize(img,[newh,neww]);



figure;

imshow(flipud(imgn),[]);

家里的键盘真的很不适合打字。

你可能感兴趣的:(matlab)