前一段介绍了从矩形图像到圆柱的正向投影,看这里和这里。今天介绍如何从已经投影的图像反映射到原图像上。
本来此种变换一定是需要数学公式的,不过这里只是用了一个很简单的方式来完成反映射。
具体就把每一列有像素数据的长度拉伸到原图像的高就行了。
原图像是这样:
处理后:
看着感觉还可以,不过这样显然是不合数学公式的,和最原始的图比较一下就看出来差别了:
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),[]);
家里的键盘真的很不适合打字。