OpenCV编程->LPT变换

最近在看一本科普性质的书《视觉仿生学原理与应用》

里面讲叙了8种生物的眼睛原理与仿生应用。

关于人眼涉及到了图像对数极坐标变换技术,表达了一种图像描述的变换,以笛卡尔坐标表示视网膜坐标位置,对数极坐标对应视皮层坐标位置。

OpenCV编程->LPT变换_第1张图片


下面开始介绍OpenCV的相关函数:

以下转自:http://blog.csdn.net/songzitea/article/details/16369165

在opencv中,函数cvLogPolar功能是将图像映射到极坐标

格式

  1. /* Performs forward or inverse log-polar image transform */  
  2. CVAPI(void)  cvLogPolar( const CvArr* src, CvArr* dst,  
  3.                          CvPoint2D32f center, double M,  
  4.                          int flags CV_DEFAULT(CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS));  
参数

  • src 源图像
  • dst 目标图像
  • center 变换中心,此处输出精度最高。
  • M 幅度尺度参数
  • flags:为插值方法标示与下面选项的组合:
    • CV_WARP_FILL_OUTLIERS 填充目标图像中的所有像素,如果某些像素对应于源图像之我的位置,则用0填充.
    • CV_WARP_INVERSE_MAP  表示矩阵是从目标图像到源图像的反变换,因此,可以直接用于像素插值;否则,函数从map_matrix寻找变换。

说明

函数cvLogPolar使用如下变换公式对源图像进行变换。

  • 正变换(未设置CV_WARP_INVERSE_MAP时): dst(phi,rho) ← src(x,y)
  • 反变换(设置CV_WARP_INVERSE_MAP): dst(x,y) ← src(phi,rho)

其中, rho =M*log[sqrt(x2+y2)],  phi = atan(y/x).

此函数可以用来模拟人类的中央视觉(foveal vision),并可以用于物体跟踪方面的尺度及旋转不变模板的快速匹配。

OpenCV编程->LPT变换_第2张图片


以上转自:http://blog.csdn.net/songzitea/article/details/16369165


实现效果如下 :


上图效果工程源码链接:

http://download.csdn.net/detail/sunboyiris/7478793



你可能感兴趣的:(opencv,LPT变换)