请教hough变换提取图像中的直线 vc++(100分)

  • 主题发起人 fengying5457
  • 开始时间
F

fengying5457

Unregistered / Unconfirmed
GUEST, unregistred user!
我的代码不对,请各位老师帮忙改或写一下
printf("Read image ok!/n");
fclose(fp);
int ldistance=0, langle=0, i, j;

//数组初始化为0
for(i=0;
i<426;
i++)
{
for(j=0;
j<180;
j++)
hough[j] = 0;
}

for(i=0;i<300;i++)
{
for(j=0;j<300;j++)
{
if(pData[j]!=0)
{
for(langle=0;
langle<180;
langle++)
{
ldistance=(int)abs(i*cos(langle*pi/180.00)+j*sin(langle*pi/180.00));

hough[ldistance][langle]++;

}
}
}//next j
}//next i

for(ldistance=0;
ldistance<426;
ldistance++)
{
for(langle=0;langle<180;
langle++)
{
if(hough[ldistance][langle]>10) //50为阀值
{
for(i=0;i<300;i++)
for(j=0;j<300;j++)
{
if((pData[j]!=0)&amp;&amp;(ldistance==(int)abs(i*cos(langle*pi/180.00)+j*sin(langle*pi/180.00))))
pData1[j]=255;
else
pData1[j]=0;
}
}
printf("dis : %d angle : %d/n", ldistance, langle);
}
}
printf("ok2/n");
FILE* fp1;
fp1=fopen("ERS_image1.raw","wb");
fwrite(pData1, sizeof(unsigned char)*300*300, 1, fp1);
fclose(fp1);
printf("ok3/n");
return;
}
 
顶部