OpenCV学习之Log-Polar极坐标变换

对于二维图形,Log-polar转换表示从笛卡尔坐标到极坐标的变化,广泛应用在计算机视觉中。此函数模仿人类视网膜中央凹视力,并且对于目标跟踪等可用于快速尺度和旋转变换不变模板匹配。

本例程实现极坐标变化,并进行反变换。

//Log-Polar极坐标变换
#include   
#include   

int main(int argc, char** argv)
{
    IplImage* src = cvLoadImage("Lena.tif", 1);
    IplImage* dst = cvCreateImage(cvSize(256,256), 8, 3);
    IplImage* src2 = cvCreateImage(cvGetSize(src), 8, 3);
    cvLogPolar(src, dst, cvPoint2D32f(src->width / 2, src->height / 2), 40, 
        CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS);  //把图像映射到极指数空间  
    //CV_WARP_FILL_OUTLIERS 填充输出图像所有像素,如果这些点有和外点对应的,则置零。  
    cvLogPolar(dst, src2, cvPoint2D32f(src->width / 2, src->height / 2), 40, 
        CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS + CV_WARP_INVERSE_MAP);
    //CV_WARP_INVERSE_MAP表示矩阵由输出图像到输入图像的逆变换,并且因此可以直接用于像素插值。否则,函数从map_matrix中寻找逆变换。  
    cvNamedWindow("log-polar", 1);
    cvShowImage("log-polar", dst);
    cvNamedWindow("inverse log-polar", 1);
    cvShowImage("inverse log-polar", src2);
    cvWaitKey();
    return 0;
}

OpenCV学习之Log-Polar极坐标变换_第1张图片
OpenCV学习之Log-Polar极坐标变换_第2张图片

你可能感兴趣的:(OpenCV学习笔记)