分享

极坐标变换

 mscdj 2014-07-25

void jzbtransfer(Mat srcMat dst,double b,CvPoint pt)

{

/*CvSize size=cvGetSize(src);*/

int r=pt.x-1;

if (r>pt.y-1)

{

r=pt.y-1;

}

if (r>src.cols-pt.x)

{

r=src.cols-pt.x;

}

if (r>src.rows-pt.y)

{

r=src.rows-pt.y;

}

int h=(int)360/b;

//BwImageDouble imga(src);

//BwImageDouble imgb(dst);

double fx,fy,rx,ry,dx,dy;

int x,y,i,j;

for (i=0;i<r+1;i++)

{

//double *data1=src.ptr(double)(i);

//double *data2=dst.ptr(double)(i);

for (j=1;j<h;j++)

{

fx=pt.y-i*sin(3.1416*j*b/180);

fy=pt.x+i*cos(3.1416*j*b/180);

rx=floor(fx);

ry=floor(fy);

x=(int)rx;

y=(int)ry;

dx=fx-rx;///////////////

dy=fy-ry;

dst.at<double>(i,j)=(1-dx)*(1-dy)*src.at<double>(x,y)+dx*dy*src.at<double>(x+1,y+1)+dx*(1-dy)*src.at<double>(x,y+1)+(1-dx)*dy*src.at<double>(x+1,y);

}

}

for (int i=0;i<h;i++)

{

dst.at<double>(0,i)=src.at<double>(pt.y,pt.x);/////////

}

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约