文章目录
- 1. 简介
- 2. 基本原理
- 基本思路
- 从目标图到半球面模型的投影
- 从半球面模型到鱼眼图像的投影
- 正交投影
- 等距投影
 
 
- 3.实际效果示例
- 论文中的原图去畸变
 
- 4. 有意思的玩法
- 5. 对生成的鱼眼图去畸变
 
 
1. 简介
算法来自论文《基于双经度模型的鱼眼图像畸变矫正方法》
2. 基本原理

基本思路
去畸变需要建立一个投影链路,这里是从目标图(最终要得到的去畸变的图)到半球面模型的投影,再从半球面模型到鱼眼图投影。目标图的ij坐标转换为半球面模型上的经度值(类比地球经纬度描述表面位置),半球面模型到鱼眼图的投影有多种方式,这里采用的正交投影和等距投影。目标图到半球面再到鱼眼图上都是一一对应的。
从目标图到半球面模型的投影
 
     
      
       
       
         α 
        
       
      
        \alpha 
       
      
    α为y方向的经度值, 
     
      
       
       
         β 
        
       
      
        \beta 
       
      
    β为x方向的经度值,经度值范围 
     
      
       
       
         [ 
        
       
         0 
        
       
         , 
        
       
         π 
        
       
         ] 
        
       
      
        [0,\pi] 
       
      
    [0,π]
 下面的公式5 6就建立了从目标图到半球面的坐标的一一对应关系
 

 注意:这里的公式有点问题,z一定是正数,但是x,y却不一定,忽略x,y的符号会导致最终得到一个只有一个象限的图,看起来像是一朵四片重复的花瓣的花。
从半球面模型到鱼眼图像的投影
正交投影
下面的公式20 21建立了从半球面到鱼眼图的一一对应关系。
 
等距投影
下面的公式28 29建立了从半球面到鱼眼图的一一对应关系。
 
3.实际效果示例
论文中的原图去畸变

 下面左边是最近邻插值的效果,右侧为双线性插值的结果
 
4. 有意思的玩法
正常去畸变的链路是从目标图—>半球面—>鱼眼图,这样可以去畸变,那链路反过来呢?那不是就可以制造鱼眼图的效果了吗!yes,是的。那后面验证效果可以用生成的鱼眼图来做去畸变。(目前有的数据不能发,所以才有了这个自己造鱼眼图的想法!)
 左边为原图,右侧为生成的鱼眼图
 
 
 

 
5. 对生成的鱼眼图去畸变
左侧为输入图,右侧为去畸变的图。从效果来看对生成的鱼眼图去畸变效果非常好,这也就说明了在去畸变的时候,建立和真实的投影模型一致的模型是多么重要,用简单的模型来模拟真实的物理世界,还是很有意思,但是怎么去近似这个真实的物理过程真是件需要创造力的事情。
 
 
 
 
算法也还算是很简单,初版一天完成,后面稍微修改了一点,总的代码量300-400行左右。







![[优选算法]------滑动窗⼝——209. 长度最小的子数组](https://img-blog.csdnimg.cn/direct/583104cca6d540c58db06717ac8c809f.png)











