//边缘点跟踪方法
//边缘跟踪,递归算法
//k:图像纵坐标
//l:图像横坐标
//inputImage 梯度图像
//outputImage 输出边缘图像
//thrLow:低阈值
private void traceEdge(int k,int l,double[]inputImage,ref byte[]outputImage,byte thrLow)
{
int[] kOffset = new int[] { 1, 1, 0, -1, -1, -1, 0, 1 };
int[] lOffset = new int[] { 0, 1, 1, -1, 1, 0, -1, -1 };
int kk, ll;
for (int p = 0; p < 8; p++)
{
kk = k + kOffset[p];
kk = Math.Abs(kk) % m_Bitmap.Height;
ll = l + lOffset[p];
ll = Math.Abs(ll) % m_Bitmap.Width;
if (outputImage[ll * m_Bitmap.Width + kk] != 255)
{
if (inputImage[ll * m_Bitmap.Width + kk] > thrLow)
{
outputImage[ll * m_Bitmap.Width + kk] = 255;
traceEdge(ll, kk, inputImage, ref outputImage, thrLow);
}
}
}
}