原文:
Win8 Metro(C#)数字图像处理--2.39二值图像投影
[函数名称]
二值图像投影 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; } }