我写了一个程序谁可以读取原始YUV文件和均值为0到修改一个加性高斯噪声。问题是,我不知道如何实现的主要功能极地功能,当我试图它总是产生错误。任何人有任何想法,以解决我的问题。谢谢
void polar(double *x1, double *x2)
{
double u, v, q, p;
do {
u = 2.0 * random() - 1;
v = 2.0 * random() - 1;
q = u * u + v * v;
} while (q >= 1.0 || q == 0.0);
p = sqrt(-2 * log(q) / q);
*x1 = u * p;
*x2 = v * p;
}
int main(void)
{
FILE *fp1, *fp2;
int a;
double a1,a2;
fp1= fopen("FOOTBALL_352x288_30_orig_01.yuv","rb");
fp2= fopen("FOOTBALL_352x288_30_orig_02.yuv","wb");
int tab[10]="";
while(!feof(fp1))
{
fread(tab,sizeof(int),1,fp1);
fwrite(tab,sizeof(int),1,fp2);
}
fclose(fp1);
fclose(fp2);
return 0;
}
极函数需要两个双打作为输入的地址。如果你宣布A1和A2传递到极地,你可以调用极性(A1,A2和)。极地功能已设置由它返回的时间的A1和A2。要检查这个问题,尝试前和您的来电极地功能后打印这些变量。