Win8 Metro(C#)数字图像处理--2.39二值图像投影

时间:2022-12-20 19:36:57
原文: Win8 Metro(C#)数字图像处理--2.39二值图像投影



[函数名称]

  二值图像投影         ImageProjection(WriteableBitmap src)

[算法说明]

Win8 Metro(C#)数字图像处理--2.39二值图像投影

[函数代码]


<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;
}
}

 
 

Win8 Metro(C#)数字图像处理--2.39二值图像投影