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

时间:2022-01-17 12:06:42

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

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

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

原图像是这样:

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),[]);

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