Seeds[StackPoint].x = iCurrentPixelx;
}
}
//判断右面的点,如果为黑,则压入堆栈
//注意防止越界
if(iCurrentPixelx < iWidth - 1)
{
//取得当前指针处的像素值,注意要转换为unsigned char型
pixel = (unsigned char)grey_liantong.GetPixel(iCurrentPixelx+1,iCurrentPixely);
if (pixel == 0)
{
StackPoint++;
Seeds[StackPoint].y = iCurrentPixely;
Seeds[StackPoint].x = iCurrentPixelx + 1;
}
}
//判断下面的点,如果为黑,则压入堆栈
//注意防止越界
if(iCurrentPixely > 1)
//取得当前指针处的像素值,注意要转换为unsigned char型
pixel = (unsigned char)grey_liantong.GetPixel(iCurrentPixelx,iCurrentPixely-1);
if (pixel == 0)
{
StackPoint++;
Seeds[StackPoint].y = iCurrentPixely - 1;
Seeds[StackPoint].x = iCurrentPixelx;
}
}
}//end while( StackPoint != 0)
flag = (flag + 7)%251+1; //当前点连通区域标定后,改变标定值
}//end if
}//end for(i
}//end for(j
//释放堆栈
delete Seeds;
grey_res.Clone(grey_liantong);
推荐阅读: