MATLAB图像处理:平面卫星图转换成立体球形图
来源:互联网 发布:淘宝网鞋柜 编辑:程序博客网 时间:2024/05/24 05:30
MATLAB图像处理:平面卫星图转换成立体球形图
过年期间回老家,一跟亲戚朋友们说起是搞计算机的,各种好奇的眼光就投过来了,
“会手机贴膜不?”
“正好我家电脑坏了,可以帮我看看么?”
“”
有好气的也有好笑的,倒是大表弟提了个很有意思问题,让我想了很久
大概是说手机上的卫星地图都是平面的,但是家里的地球仪却是一个立体的图像,怎么把卫星拍到的平面图变成立体图贴在地球仪上面哦。
当时两眼一懵,手心一凉,心里波澜起伏
用语言表达当时的情况大概是:我去,这TM熊孩子,你不待在家里写作业就算了,干嘛跑我这来瞎提这些捣蛋问题。。
但是总不能说不知道吧,那多丢人啊,于是我还是正经的回答了他的问题“小朋友,等你长大了就知道了。(呵呵)”
闲下来细想,这还真是个问题哈,我们可以卫星拍成的照片通过图像拼接的方法变成一个平面的地图,但是想要得到一个三维的卫星地图还真不是一个随便想想就能得到的诶
之后受到了全景拍摄和鱼眼相机的启发突发奇想想要写这个程序
我们大可以把平面的卫星地图看做是一个手机从地球侧面拍摄的全景图
于是乎三维的地图就变成了鱼眼相机从地球顶部的角度拍摄的地图
全景图的上方的像素就等价于鱼眼相机中间的像素,同样的,全景图 下方的像素就变成了鱼眼相机四周的像素了,,,于是乎,只要在鱼眼图中找到全景图中像素对应的位置,就可以完成卫星图到球面图的转换了
接下来是无尽的改bug时间。。。。。
最后matlab函数如下
function [imgn,imgc] = rec2global(I,r1)%全景图转换成穹顶图片,输入img为全景图,输出imgn为穹顶图,r为穹顶内环半径%%subplot(2,2,[1,2]);imshow(I);[m,n]=size(I);%r1=100; %内环半径r2=r1+m;%外环半径imgc=zeros(2*r2,2*r2,3,'uint8');%用于保存图像%%imgn=zeros(2*r2,2*r2);[re_m,re_n]=size(imgn);for y=1:re_mfor x=1:re_ndis_x=x-re_n/2;dis_y=y-re_m/2;l=sqrt(dis_x^2+dis_y^2);if l<=r2 && l>=r1theta=0;if y>re_m/2theta=atan2(dis_y,dis_x);endif y<re_m/2theta=pi+atan2(-dis_y,-dis_x);endif y==re_m/2theta=atan2(dis_y,dis_x)+0.0001;endxx=ceil(n*theta/(2*pi));yy=ceil(l-r1);if yy>=1 && yy<=m && xx>=1 && xx<=nimgn(y,x)=I(yy,xx);XX=ceil(xx/3);imgc(y,x,:)=I(yy,XX,:);%此处要对计算出来的XX取整endendendend%%subplot(2,2,3);imshow(imgn);subplot(2,2,4);imshow(imgc);end
运行如下
>>imread('earth.jpg');>>[imgn,imgc]=rec2global(Ie,0);
结果如下:
(原图)
(效果图)
(matlab里面的尿性结果)
到这里,请容我问一句,
嗯哼,刚那熊孩子人呢?
之后我添加了第二个参数,为球形图的内径,修改它的值,然后发现还挺好玩的哈哈
1 0
- MATLAB图像处理:平面卫星图转换成立体球形图
- 球形摄像机平面坐标与3D坐标转换算法
- Matlab图像处理:使用函数将彩色图转换为灰度图
- MATLAB图像处理(包括图像类型转换)----转载
- MATLAB图像处理(包括图像类型转换)----转载
- MATLAB图像处理(包括图像类型转换)
- Matlab批量处理转换灰度图
- 图像位平面分层及matlab实现
- Matlab 图像处理入门学习笔记—1.图片格式转换
- Matlab图像转换
- 【图像处理】MATLAB:图像噪声
- 【图像处理】MATLAB:图像压缩
- 【图像处理】MATLAB:图像分割
- MATLAB图像处理命令
- MATLAB 图像处理命令
- MATLAB图像处理基本知识
- Matlab 图像处理
- 关于matlab图像处理
- 103.有问题!!!!Remove Duplicate Letters
- uva 10943 隔板法
- Linux RPM命令
- 单例模式
- Ubuntu安装JDK
- MATLAB图像处理:平面卫星图转换成立体球形图
- Java张孝祥视频 学习笔记 反射
- Android性能优化
- IP地址段计算方法——计算最大广播地址,最小网络地址
- iOS 保存图片到相册
- POJ 1470 Closest Common Ancestors LCA_Tarjan
- Android Studio生成apk
- 抽象工厂模式-与-工厂方法模式区别
- Android 系统稳定性 - OOM(一)