[函数名称]
二值图像投影 ImageProjection(WriteableBitmap src)
[算法说明]
[函数代码]
<pre class="csharp" name="code"> /// <summary>
/// Get projections of X and Y direction.
/// </summary>
/// <param name="src">The source image.</param>
/// <returns></returns>
public static int[][] ImageProjection(WriteableBitmap src)////二值图像投影
{
if (src != null)
{
int w = src.PixelWidth;
int h = src.PixelHeight;
int[][] Centerpoint = new int[2][];
Centerpoint[0] = new int[w+1];
Centerpoint[1] = new int[h+1];
int b = 0, g = 0, r = 0;
byte[] temp = src.PixelBuffer.ToArray();
for (int y = 0; y < h; y++)
{
for (int x = 0; x < w * 4; x += 4)
{
b = temp[x + y * w * 4];
g = temp[x + 1 + y * w * 4];
r = temp[x + 2 + y * w * 4];
if (r + g + b == 0)
{
Centerpoint[1][y]++;
}
}
}
for (int x = 0; x < w * 4; x += 4)
{
for (int y = 0; y < h; y++)
{
b = temp[x + y * w * 4];
g = temp[x + 1 + y * w * 4];
r = temp[x + 2 + y * w * 4];
if (r + g + b == 0)
{
Centerpoint[0][(int)(x/4)]++;
}
}
}
return Centerpoint;
}
else
{
return null;
}
}