C#图像颜色聚类高效方法实例

作者:沧海一粟…… 时间:2021-09-29 09:14:41 

本文实例讲述了C#图像颜色聚类高效方法。分享给大家供大家参考。具体分析如下:

图像颜色聚类的方法有很多,但是对于视频监控而言,现有方法很难满足实时性的要求,这里介绍一种位屏蔽压缩的方法实现颜色聚类,可以满足实时性的要求。

位屏蔽法就是在3D的RGB真彩空间中近似均匀采样的颜色压缩方法,即将屏蔽的颜色位置设置为0,具体可以采用移位运算来实现,这里我们以屏蔽RGB颜色分量末6位为例:


public Bitmap PCluster(Bitmap a)
{
 try
 {
  Rectangle rect = new Rectangle(0, 0, a.Width, a.Height);
  System.Drawing.Imaging.BitmapData bmpData = a.LockBits(rect, System.Drawing.Imaging.ImageLockMode.ReadWrite, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
  int stride = bmpData.Stride;
  unsafe
  {
    byte* pIn = (byte*)bmpData.Scan0.ToPointer();
    byte* P;
    int R, G, B;
    for (int y = 0; y < a.Height; y++)
    {
    for (int x = 0; x < a.Width; x++)
    {
      P = pIn;
      B = P[0];
      G = P[1];
      R = P[2];
      P[0] = (byte)(B & 192); //屏蔽末6位
      P[1] = (byte)(G & 192);
      P[2] = (byte)(R & 192);
      pIn += 3;
    }
    pIn += stride - a.Width * 3;
    }
  }
  a.UnlockBits(bmpData);
  return a;
 }
 catch (Exception e)
 {
  MessageBox.Show(e.Message.ToString());
  return null;
 }
}

原图:

C#图像颜色聚类高效方法实例

效果图:

C#图像颜色聚类高效方法实例

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

标签:C#,图像
0
投稿

猜你喜欢

  • c# 线程定时器 System.Threading.Timer的使用

    2022-07-08 01:28:09
  • 使用Spring的拦截器监测每个Controller或方法的执行时长

    2021-12-19 16:36:01
  • 一篇文章弄懂Spring MVC的参数绑定

    2023-09-17 01:01:21
  • Android listview的滑动冲突解决方法

    2022-07-19 02:50:59
  • Java反射 Field类的使用全方位解析

    2022-09-01 13:22:45
  • 深入了解Spring中最常用的11个扩展点

    2023-07-05 17:46:40
  • Android开发获取重力加速度和磁场强度的方法

    2022-05-27 23:07:09
  • Android实现界面跳转功能

    2022-05-07 21:51:32
  • Spring Boot多个定时任务阻塞问题的解决方法

    2023-09-20 11:43:36
  • Python调用Java可执行jar包问题

    2021-06-02 10:26:26
  • 在Maven下代理服务器设定的方式

    2023-10-15 02:17:13
  • C# 网络编程之UDP

    2021-10-02 16:06:40
  • Androd 勇闯高阶性能优化之布局优化篇

    2023-01-22 12:12:15
  • Java实现堆排序和图解

    2023-11-11 12:13:37
  • SpringBoot实现Mysql使用MD5进行密码加密的示例

    2022-11-24 23:14:16
  • SpringBoot动态修改日志级别的操作

    2022-10-31 05:00:30
  • Android应用APP自动更新功能的代码实现

    2022-09-17 09:48:25
  • Java中的强引用,软引用,弱引用,虚引用的作用介绍

    2023-08-27 11:03:28
  • 基于struts2和hibernate实现登录和注册功能

    2022-03-23 00:27:43
  • SpringMVC的执行流程及组件详解

    2021-06-17 23:29:21
  • asp之家 软件编程 m.aspxhome.com