C#圖像處理之頭發(fā)檢測的方法
更新時間:2015年04月24日 10:09:56 作者:滄海一粟……
這篇文章主要介紹了C#圖像處理之頭發(fā)檢測的方法,可實現(xiàn)針對圖像中頭發(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;
}
//定義最小值函數(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é)果圖像效果:


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

