圆柱投影就是将一张二维的图像投影到三维的圆柱体上,不过在显示图像的时候依然是以二维的形式给出。

投影最重要的步骤就是计算投影变换公式,和图像旋转类似,只要得到变换公式,再依照公式进行代码编写就很容易了。

这里就不写投影变换公式的推导过程了,直接给出变换公式。公式分为正变换和反变换,编程时,反变换公式通常更有用。

正变换公式如下:

其中,x,y为原图的坐标,x‘,y‘为变换后图像的坐标,W,H为原图的宽和高,f=W/(2*tan(hfOV/2)),这里hfOV为相机水平视角,我们通过设置这个参数来实现不同的投影效果,hfOV取值为(0,pi)之间。

反变换公式可以通过正变换公式推导出来,其实在程序中已经写出来了。

下面是hfOV为pi/2时得到的变换结果:

原图:

处理后结果:

matlab代码如下:

clear all; close all;clc;

img=imread(‘lena.jpg‘);

[h,w]=size(img);

hfOV=pi/2; %可取区间为(0,pi)

f=w/(2*tan(hfOV/2));

newh=h; %变换后高度不变

neww=floor(f*atan((w-w/2)/f)+f*atan(w/(2*f))); %通过正变换公式计算最大宽度

imgn=zeros(newh,neww);for i=1:newhfor j=1:neww

%反变换公式的应用

x=floor(f*tan(j/f-atan(w/(2*f)))+w/2);

y=floor((i-h/2)*sqrt((x-w/2)^2+f^2)/f+h/2);if x>=1 && x<=w && y>=1 && y<=h

imgn(i,j)=img(y,x);end

end

endimshow(img);

figure;

imshow(imgn,[]);

原文:http://www.cnblogs.com/tiandsp/p/3815119.html

matlab 柱面投影,matlab练习程序(圆柱投影)相关推荐

  1. matlab 柱面投影,图像拼接(不投影到柱面)(渐入渐出融合) matlab程序

    1,先拍摄一组图片,比如两幅图:A.B 我直接用网上的两幅图: 2,分别投影到柱面坐标系 就用自己写的柱面投影程序 matlab里 结果: 3,开始配准第一步:SIFT得到匹配对(直接用OpenCV里 ...

  2. 柱面投影matlab程序

    拼接之前要进行柱面.立方体面或者球面投影,<全景拼接的关键技术研究>选的是柱面投影,根据其理论有: %假设相机市场角为45度 %反投影到柱面时左右有缝隙了 A=imread('F:\fis ...

  3. matlab中投影,MATLAB在极射赤平投影中的应用

    文章编号: 100926825 (2010) 360357202 MATLAB在极射赤平投影中的应用 收稿日期: 20100822 作者简介:潘冀川 (1988) ,男 ,石家庄经济学院本科生 ,河北 ...

  4. matlab 水平投影,matlab图像处理方面的问题。水平投影和垂直投影!

    我在本论坛找了一个程序: I=imread('mp23.jpg'); I1=rgb2gray(I);                  %转换成灰度图像 Imax=double(max(max(I1) ...

  5. matlab gui优化,matlabgui优化程序

    的优化工具箱提供了各种优化函数,这些优化 函数可以通过在命令行输入相应的函数名加以调用;此外 为了使用方便,MATLAB 还提供了图形界面的优化工具 (GUI Optimization ...... ...

  6. matlab中提供滤波器的种类有,求MATLAB巴特沃思低通滤波器程序

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:求MATLAB巴特沃思低通滤波器程序.回答:击响应不变法函数 [bz,az]=impinvar(b,a,Fs) [bz,az]=im ...

  7. 如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于Matlab R2015b版 )

    如何将MATLAB程序发布为独立的不依赖MATLAB环境可执行的程序包(基于MatlabR2015b版) 关键字:MatlabR2015b,可独立运行,可脱离Matlab环境,m文件,Matlab程序 ...

  8. matlab的exec程序,C++调用Matlab画图的一段程序

    劳动节闲来无事,写了一天程序,just for fun. 看,这是C++调用Matlab画图的一段程序.暂时不想多解释了,有兴趣的话,看看下面的代码吧. 以下几段代码由上到下,越来越旧.最上面的是最新 ...

  9. matlab 万年历,matlab时钟万年历 matlab时钟万年历(附word说明文档): 程序主要 联合开发网 - pudn.com...

    matlab时钟万年历 所属分类:图形图像处理 开发工具:matlab 文件大小:54KB 下载次数:6 上传日期:2018-08-24 21:54:23 上 传 者:小小葡萄123 说明:  mat ...

最新文章

  1. Myeclipse快捷键的使用
  2. 在jupyter notebook中attr1参数的作用_PID控制中P、I、D参数的作用究竟是什么?
  3. Java JDBC批处理插入数据操作
  4. Java设计模式(十三):代理设计模式
  5. ArcGIS Engine 编辑介绍
  6. json对象数组按对象属性排序
  7. 后台服务系统之搭建ZooKeeper注册中心
  8. netflix 工作原理_Netflix如何在屏幕后面工作?
  9. Angular5 *ngIf 和 hidden 的区别
  10. 别做码农了,去做一名工程师
  11. Qt5.8 Windows端 关于 Style Plugin Example 官方实例中的错误
  12. Argument list too long 文件数过多
  13. Web开发小结 - 2
  14. Spark Streaming之updateStateByKey和mapWithState比较
  15. DBGrid 应用全书
  16. cornerstone图标含义
  17. html状态栏透明,HTML – 如何使我的导航栏略微透明?
  18. 2021-03-11
  19. FPGA:verilog实现直接型巴特沃斯高通IIR滤波器
  20. 第一周:半导体器件基础(一)

热门文章

  1. vmware centos 7 更新vmware-tools
  2. H.264(MPEG-4 AVC)级别(Level)、DPB 与 MaxDpbMbs 详解(转载)
  3. 关于jdk1.5之后的自定拆装箱
  4. MySQL优化器cost计算
  5. Android Animation学习(六) View Animation介绍
  6. hadoop整合纪要
  7. git ssh 绑定 GitLab
  8. .Net常用正则判断方法
  9. python框架Flask学习笔记之get和post请求
  10. 实验九——基本数据类型存储及应用总结