有没有大神告诉我这段代码怎么解读
opencv吧
全部回复
仅看楼主
level 1
Ismile小轩 楼主
/*************************************************************************
扭曲效果
************************************************************************/
void twist(CString c)
{double m;
double n=3;
int r=w/2;;
int w=Imgin->width;
int h=Imgin->height;
m=(double)2/r;
int tx=w/2;
int ty=h/2;
for(i=0;i<2*r;i++)//列
{
for(j=0;j<2*r;j++)
{
radius=sqrt((double)(j-r)*(double)(j-r)+(double)(i-r)*(double)(i-r));
if(radius<=r)//区域像素点
{
beta=pi/n*(1-m*fabs(radius-(double)r/2));
x=j-r+tx;
y=i-r+ty;//输出图像的像素点坐标
t1=(double)((j-r)*cos(beta)-(i-r)*sin(beta)+tx);
t2=(double)((j-r)*sin(beta)+(i-r)*cos(beta)+ty);
xx=(int)t1;
yy=(int)t2;//对应的源图像坐标取整
temp1=(double)(t1-xx);
temp2=(double)(t2-yy);
if(c=="最近邻插值")
{
nearest( xx, yy, x, y,temp1,temp2);//最近邻插值
}
else if(c=="双线性插值")
{
Bilinear( xx, yy, x, y,temp1,temp2);//双线性插值
}
else if(c=="双三次插值")
{
sanci( xx, yy, x, y,temp1,temp2);//双三次插值
}
}
}
}
}
}
2017年05月21日 05点05分 1
level 1
Ismile小轩 楼主
for循环里边那段
radius=sqrt((double)(j-r)*(double)(j-r)+(double)(i-r)*(double)(i-r));
if(radius<=r)//区域像素点
{
beta=pi/n*(1-m*fabs(radius-(double)r/2));
x=j-r+tx;
y=i-r+ty;//输出图像的像素点坐标
t1=(double)((j-r)*cos(beta)-(i-r)*sin(beta)+tx);
t2=(double)((j-r)*sin(beta)+(i-r)*cos(beta)+ty);
这几句怎么解读
2017年05月21日 05点05分 2
level 1
Ismile小轩 楼主
求个会做图像扭曲变形、涟漪变形、球面变形的大神,帮我说一下程序就好,程序已经写出来了,就是有点看不懂。。要写论文,需要说一下原理。。
2017年05月21日 05点05分 3
level 1
Ismile小轩 楼主
有没有大哥指导一下这几句怎么解的?
2017年05月21日 05点05分 4
level 1
Ismile小轩 楼主
就帮忙解读一下代码。。
2017年05月21日 05点05分 5
level 1
Ismile小轩 楼主
[哈哈]
2017年05月21日 05点05分 6
level 1
Ismile小轩 楼主
大佬们都睡着了吗
2017年05月21日 05点05分 7
level 1
Ismile小轩 楼主
大佬哪
2017年05月21日 05点05分 8
level 1
Ismile小轩 楼主
[不高兴]
2017年05月21日 05点05分 9
1