首页 > 学院 > 开发设计 > 正文

OpenCV对数极变换变换示例

2019-11-06 08:12:51
字体:
来源:转载
供稿:网友

OpenCV中对于对数极坐标转换的函数为cvLogPolar( ),由笛卡尔坐标系x-y转换到极坐标系ρ-θ坐标系下。

前向变换:Forward: dst(ρ,θ)=src(x,y);  反向变换:Inverse: dst(x,y)=src(ρ,θ)。其中ρ=M*,θ=arctan(y/x)。M是缩放比例。

以下图为例,先进行前向变换,从笛卡尔坐标系转换到极坐标系,然后再从极坐标系转换到笛卡尔坐标系。

#include"cv.h"#include"highgui.h"using%20namespace%20cv;void%20main(){ iplImage*%20srcImg=cvLoadImage("img.jpg", 1); IplImage* dstImg=cvCreateImage(cvGetSize(srcImg), 8, 3); IplImage* srcImg2=cvCreateImage(cvGetSize(srcImg), 8, 3); double m=80; cvLogPolar(srcImg, dstImg, cvPoint2D32f(srcImg->width/8, srcImg->height/2), m, CV_INTER_LINEAR | CV_WARP_FILL_OUTLIERS ); cvLogPolar(dstImg, srcImg2, cvPoint2D32f(srcImg->width/8, srcImg->height/2), m, CV_INTER_LINEAR | CV_WARP_INVERSE_MAP); cvNamedWindow("log-polar", 1); cvShowImage("log-polar", dstImg); cvNamedWindow("inverse log-polar", 1); cvShowImage("inverse log-polar", srcImg2); cvWaitKey(-1); cvReleaseImage(&srcImg); cvReleaseImage(&srcImg2); cvReleaseImage(&dstImg); cvDestroyAllWindows();}

   


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表