欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#圖像處理之頭發(fā)檢測的方法

 更新時間:2015年04月24日 10:09:56   作者:滄海一粟……  
這篇文章主要介紹了C#圖像處理之頭發(fā)檢測的方法,可實現針對圖像中頭發(fā)的檢測功能,非常具有實用價值,需要的朋友可以參考下

本文實例講述了C#圖像處理之頭發(fā)檢測的方法。分享給大家供大家參考。具體如下:

//發(fā)色檢測(YCbCr顏色空間)
public Bitmap HairD(Bitmap a)
{
  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;
   double Cr, Cb,BrightV;
   for (int y = 0; y < a.Height; y++)
   {
     for (int x = 0; x < a.Width; x++)
     {
     p = pIn;
     R = p[2];
     G = p[1];
     B = p[0];
     Cb = 128 - 37.797 * R / 255 - 74.203 * G / 255 + 112 * B / 255;
     Cr = 128 + 112 * R / 255 - 93.768 * G / 255 - 18.214 * B / 255;
     BrightV = (R + G + B) / 3;
     if (!(Cb >= 115 && Cb <= 141 && Cr >= 115 && Cr <= 143 && (R < 35)))
     {
       pIn[0] = (byte)255;
       pIn[1] = (byte)255;
       pIn[2] = (byte)255;
     }
     pIn += 3;
     }
     pIn += stride - a.Width * 3;
   }
  }
  a.UnlockBits(bmpData);
  return a;
}
//定義最小值函數
public double Min(double a, double b, double c)
{
  double e = (a <= b ? a : b) <= c ? (a <= b ? a : b) : c;
  return e;
}
//定義最大值函數
public int Max(int a, int b, int c)
{
  int e = (a >= b ? a : b) <= c ? c : (a >= b ? a : b);
  return e;
}

結果圖像效果:

希望本文所述對大家的C#程序設計有所幫助。

相關文章

  • C#中調用DLL時未能加載文件或程序集錯誤的處理方法(詳解)

    C#中調用DLL時未能加載文件或程序集錯誤的處理方法(詳解)

    下面小編就為大家?guī)硪黄狢#中調用DLL時未能加載文件或程序集錯誤的處理方法(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Unity3D實現播放gif圖功能

    Unity3D實現播放gif圖功能

    這篇文章主要為大家詳細介紹了Unity3D實現播放gif圖功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • c# 單例模式的實現

    c# 單例模式的實現

    這篇文章主要介紹了c# 單例模式的實現方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 在Parallel中使用DbSet.Add()發(fā)現的一系列多線程問題和解決思路詳解

    在Parallel中使用DbSet.Add()發(fā)現的一系列多線程問題和解決思路詳解

    這篇文章主要介紹了在Parallel中使用DbSet.Add()發(fā)現的一系列多線程問題和解決過程的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • C# 打印網頁不顯示頁眉頁腳的實現方法

    C# 打印網頁不顯示頁眉頁腳的實現方法

    這篇文章主要介紹了C# 打印網頁不顯示頁眉頁腳的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 詳解Unity 實現語音識別功能

    詳解Unity 實現語音識別功能

    語言識別功能已經在我們身邊普遍流行起來,在unity開發(fā)中語音識別也非常火熱,今天就介紹下Unity自帶的語音識別功能的實現,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 基于mvc5+ef6+Bootstrap框架實現身份驗證和權限管理

    基于mvc5+ef6+Bootstrap框架實現身份驗證和權限管理

    最近剛做完一個項目,項目架構師使用mvc5+ef6+Bootstrap,用的是vs2015,數據庫是sql server2014。下面小編把mvc5+ef6+Bootstrap項目心得之身份驗證和權限管理模塊的實現思路分享給大家,需要的朋友可以參考下
    2016-06-06
  • C#基礎知識之base關鍵字介紹

    C#基礎知識之base關鍵字介紹

    本文主要介紹base關鍵字的使用方法,base關鍵字可以調用基類重寫的方法,可以調用基類的構造方法,還可以在EntityFramework中使用,下面一一介紹。
    2016-04-04
  • C#中的多播委托和泛型委托

    C#中的多播委托和泛型委托

    這篇文章介紹了C#中的多播委托和泛型委托,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 深入理解C# abstract和virtual關鍵字

    深入理解C# abstract和virtual關鍵字

    深入理解C# abstract和virtual關鍵字,學習c#的朋友可以參考下。
    2011-06-06

最新評論