|
在dsp上跑canny算子,576*720大小的图像总是失败,在边界跟踪的地方就没反应了,请大侠看看是怎么回事?
void TraceEdge(int y, int x, int nThrLow, LPBYTE pResult, int *pMag, SIZE sz)
{
//对8邻域像素进行查询
int xNum[8] = {1,1,0,-1,-1,-1,0,1};
int yNum[8] = {0,1,1,1,0,-1,-1,-1};
long yy,xx,k;
for(k=0;k<8;k++)
{
yy = y+yNum[k];
xx = x+xNum[k];
// if((xx>sz.cx)||(yy>sz.cy)) break;
if(pResult[yy*sz.cx+xx]==128 && pMag[yy*sz.cx+xx]>=nThrLow )
{
pResult[yy*sz.cx+xx] = 255; //该点设为边界点
TraceEdge(yy,xx,nThrLow,pResult,pMag,sz); //以该点为中心再进行跟踪
}
}
} |
|