最近在看一本科普性质的书《视觉仿生学原理与应用》
里面讲叙了8种生物的眼睛原理与仿生应用。
关于人眼涉及到了图像对数极坐标变换技术,表达了一种图像描述的变换,以笛卡尔坐标表示视网膜坐标位置,对数极坐标对应视皮层坐标位置。
下面开始介绍OpenCV的相关函数:
以下转自:http://blog.csdn.net/songzitea/article/details/16369165
在opencv中,函数cvLogPolar功能是将图像映射到极坐标。
格式
- /* Performs forward or inverse log-polar image transform */
- CVAPI(void) cvLogPolar( const CvArr* src, CvArr* dst,
- CvPoint2D32f center, double M,
- 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寻找变换。
- CV_WARP_FILL_OUTLIERS 填充目标图像中的所有像素,如果某些像素对应于源图像之我的位置,则用0填充.
说明
函数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),并可以用于物体跟踪方面的尺度及旋转不变模板的快速匹配。
以上转自:http://blog.csdn.net/songzitea/article/details/16369165
实现效果如下 :
上图效果工程源码链接:
http://download.csdn.net/detail/sunboyiris/7478793