C#圖像處理之圖像目標(biāo)質(zhì)心檢測(cè)的方法
更新時(shí)間:2015年04月24日 10:23:15 作者:滄海一粟……
這篇文章主要介紹了C#圖像處理之圖像目標(biāo)質(zhì)心檢測(cè)的方法,可實(shí)現(xiàn)C#計(jì)算圖像質(zhì)心的相關(guān)技巧,需要的朋友可以參考下
本文實(shí)例講述了C#圖像處理之圖像目標(biāo)質(zhì)心檢測(cè)的方法。分享給大家供大家參考。具體如下:
//采用二值化圖像,圖像中黑色表示背景,白色表示目標(biāo)
//定義質(zhì)心計(jì)算函數(shù)
private int[] CentPoints(Bitmap src)
{
//定義存儲(chǔ)質(zhì)心坐標(biāo)的數(shù)組變量
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;
//返回一個(gè)數(shù)組,該數(shù)組中第一個(gè)元素是質(zhì)心的X坐標(biāo),
//第二個(gè)元素是質(zhì)心的Y坐標(biāo)
}
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
基于C#實(shí)現(xiàn)簡(jiǎn)易的鍵盤記錄器
本文將利用C#語言和HOOK技術(shù)來做一個(gè)鍵盤記錄器,看看一天下來,我們點(diǎn)擊了多少次鍵盤,哪些鍵的使用頻率最高,感興趣的小伙伴可以嘗試一下2022-08-08
C# Guid長(zhǎng)度雪花簡(jiǎn)單生成器的示例代碼
這篇文章主要介紹了C# Guid長(zhǎng)度雪花簡(jiǎn)單生成器的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下2020-12-12
.NET C#利用ZXing生成、識(shí)別二維碼/條形碼
ZXing是一個(gè)開放源碼的,用Java實(shí)現(xiàn)的多種格式的1D/2D條碼圖像處理庫(kù),它包含了聯(lián)系到其他語言的端口。這篇文章主要給大家介紹了.NET C#利用ZXing生成、識(shí)別二維碼/條形碼的方法,文中給出了詳細(xì)的示例代碼,有需要的朋友們可以參考借鑒。2016-12-12
C#檢測(cè)移動(dòng)硬盤并獲取移動(dòng)硬盤盤符的方法
這篇文章主要介紹了利用C#檢測(cè)移動(dòng)硬盤并獲取移動(dòng)硬盤盤符2017-12-12
C#讀取數(shù)據(jù)庫(kù)返回泛型集合詳解(DataSetToList)
本篇文章主要是對(duì)C#讀取數(shù)據(jù)庫(kù)返回泛型集合(DataSetToList)進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01
C#如何遠(yuǎn)程讀取服務(wù)器上的文本內(nèi)容
這篇文章主要介紹了C#如何遠(yuǎn)程讀取服務(wù)器上的文本內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01

