原文: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;
}
}



最新文章

  1. 编写实现连接oracle数据库并返回Connection对象的Java工具类
  2. List集合对象根据字段排序
  3. Ubuntu解压命令大全
  4. Ubuntu文本编辑时vi和nano命令的区别(建议使用nano)
  5. 转:程序员必须知道的几个Git代码托管平台
  6. 理解Node.js事件驱动编程
  7. My集合框架第五弹 最小堆
  8. Java Swing 快捷键
  9. 详解boost库中的Message Queue .
  10. oracle中闪回错误的dml操作原理
  11. python文件I/O
  12. TFS应用经验-大型项目数据仓库抽取导致的TFS应用无法访问
  13. 初学Java的那段日子
  14. DCM、PLL、PMCD、MMCM相关
  15. EF Core中DbContext可以被Dispose多次
  16. python return 及lambda函数
  17. (转)Elasticsearch索引mapping的写入、查看与修改
  18. Asp.Net Core 连接Mysql
  19. linux 下mongodb 3.2.5单机版安装
  20. PytorchZerotoAll学习笔记(二)--梯度下降之手动求导

热门文章

  1. Android的NDK开发(1)————Android JNI简介与调用流程
  2. Net Core 实现谷歌翻译ApI 免费版
  3. php课程 4-14 数组如何定义使用
  4. 稀疏编码(sparse code)与字典学习(dictionary learning)
  5. Hudson版本控制 (备注)
  6. Expression Blend 的点滴(4)--创建类似iPhone屏幕锁控件(上)
  7. Windows安装Jekyll
  8. 【t017】YL杯超级篮球赛
  9. 如何将字段中带逗号的SQLite数据库数据导入到MySQL
  10. Android平台第三方应用分享到微信开发