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

来源:互联网 发布:java线程死锁 编辑:程序博客网 时间:2024/05/16 10:03


[函数名称]

  二值图像投影         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;            }        }




0 0