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