欢迎来到代码驿站!

.NET代码

当前位置:首页 > 软件编程 > .NET代码

C#图像处理之图像目标质心检测的方法

时间:2021-01-10 11:07:51|栏目:.NET代码|点击:

本文实例讲述了C#图像处理之图像目标质心检测的方法。分享给大家供大家参考。具体如下:

//采用二值化图像,图像中黑色表示背景,白色表示目标
//定义质心计算函数
private int[] CentPoints(Bitmap src)
{
  //定义存储质心坐标的数组变量
  int[] CentreP = new int[2];
  int M00 = 0, M01 = 0, M10 = 0;
  Rectangle rect = new Rectangle(0, 0, src.Width, src.Height);
  System.Drawing.Imaging.BitmapData bmpData = src.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  unsafe
  {
 int stride = bmpData.Stride;
 byte* p;
 byte* pIn = (byte*)bmpData.Scan0.ToPointer();
 int R, G, B;
 for (int y = 0; y < src.Height; y++)
 {
   for (int x = 0; x < src.Width; x++)
   {
 p = pIn;
 R = p[2];
 G = p[1];
 B = p[0];
 if (R + G + B != 0)
 {
   M00++;
   M01 += y;
   M10 += x;
 }
 pIn += 3;
   }
   pIn += stride - src.Width * 3;
 }
 CentreP[0] = (int)(M10 / M00);
 CentreP[1] = (int)(M01 / M00);
  }
  src.UnlockBits(bmpData);
  return CentreP;
  //返回一个数组,该数组中第一个元素是质心的X坐标,
  //第二个元素是质心的Y坐标
}

希望本文所述对大家的C#程序设计有所帮助。

上一篇:C#实现获取一年中是第几个星期的方法

栏    目:.NET代码

下一篇:C#自定义的字符串操作增强类实例

本文标题:C#图像处理之图像目标质心检测的方法

本文地址:http://www.codeinn.net/misctech/43422.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有