C#圖像處理之頭發(fā)檢測(cè)的方法
本文實(shí)例講述了C#圖像處理之頭發(fā)檢測(cè)的方法。分享給大家供大家參考。具體如下:
//發(fā)色檢測(cè)(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;
}
//定義最小值函數(shù)
public double Min(double a, double b, double c)
{
double e = (a <= b ? a : b) <= c ? (a <= b ? a : b) : c;
return e;
}
//定義最大值函數(shù)
public int Max(int a, int b, int c)
{
int e = (a >= b ? a : b) <= c ? c : (a >= b ? a : b);
return e;
}
結(jié)果圖像效果:


希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
C#中調(diào)用DLL時(shí)未能加載文件或程序集錯(cuò)誤的處理方法(詳解)
下面小編就為大家?guī)?lái)一篇C#中調(diào)用DLL時(shí)未能加載文件或程序集錯(cuò)誤的處理方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
在Parallel中使用DbSet.Add()發(fā)現(xiàn)的一系列多線(xiàn)程問(wèn)題和解決思路詳解
這篇文章主要介紹了在Parallel中使用DbSet.Add()發(fā)現(xiàn)的一系列多線(xiàn)程問(wèn)題和解決過(guò)程的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
C# 打印網(wǎng)頁(yè)不顯示頁(yè)眉頁(yè)腳的實(shí)現(xiàn)方法
這篇文章主要介紹了C# 打印網(wǎng)頁(yè)不顯示頁(yè)眉頁(yè)腳的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
詳解Unity 實(shí)現(xiàn)語(yǔ)音識(shí)別功能
語(yǔ)言識(shí)別功能已經(jīng)在我們身邊普遍流行起來(lái),在unity開(kāi)發(fā)中語(yǔ)音識(shí)別也非?;馃?,今天就介紹下Unity自帶的語(yǔ)音識(shí)別功能的實(shí)現(xiàn),感興趣的朋友跟隨小編一起看看吧2021-05-05
基于mvc5+ef6+Bootstrap框架實(shí)現(xiàn)身份驗(yàn)證和權(quán)限管理
最近剛做完一個(gè)項(xiàng)目,項(xiàng)目架構(gòu)師使用mvc5+ef6+Bootstrap,用的是vs2015,數(shù)據(jù)庫(kù)是sql server2014。下面小編把mvc5+ef6+Bootstrap項(xiàng)目心得之身份驗(yàn)證和權(quán)限管理模塊的實(shí)現(xiàn)思路分享給大家,需要的朋友可以參考下2016-06-06
C#基礎(chǔ)知識(shí)之base關(guān)鍵字介紹
本文主要介紹base關(guān)鍵字的使用方法,base關(guān)鍵字可以調(diào)用基類(lèi)重寫(xiě)的方法,可以調(diào)用基類(lèi)的構(gòu)造方法,還可以在EntityFramework中使用,下面一一介紹。2016-04-04
深入理解C# abstract和virtual關(guān)鍵字
深入理解C# abstract和virtual關(guān)鍵字,學(xué)習(xí)c#的朋友可以參考下。2011-06-06

