2012-02-29 208 views
1

我是一名圖像處理新手。任何人都可以教我如何在灰度圖像中進行斑點檢測?一個示例代碼將非常感激。那麼我就必須計算出現的斑點數量。順便說一下,輸入將來自網絡攝像頭。還有如何確定blob的大小?喜歡比較尺寸是否與頭部尺寸幾乎相同?事實上,我正在做一個櫃檯,我必須計算通過門的人數。Emgu CV灰度圖像斑點檢測

+0

示例代碼?這是一個非常複雜的話題,我不會得到代碼示例。看到這個:http://opencv.willowgarage.com/wiki/cvBlobsLib – vulkanino 2012-02-29 15:23:53

+0

也許你可以幫我確定使用emgucv – user1217904 2012-02-29 15:45:42

回答

0

在我的評論的鏈接例如:

http://opencv.willowgarage.com/wiki/cvBlobsLib

你輕鬆搞定一個CBlob對象:

CBlobResult blobs; 
int i; 
CBlob *currentBlob; 
IplImage *original, *originalThr; 

// load an image and threshold it 
original = cvLoadImage("pic1.png", 0); 
cvThreshold(original, originalThr, 100, 0, 255, CV_THRESH_BINARY); 

// find non-white blobs in thresholded image 
blobs = CBlobResult(originalThr, NULL, 255); 
// exclude the ones smaller than param2 value 
blobs.Filter(blobs, B_EXCLUDE, CBlobGetArea(), B_LESS, param2); 

// get mean gray color of biggest blob 
CBlob biggestBlob; 
CBlobGetMean getMeanColor(original); 
double meanGray; 

blobs.GetNth(CBlobGetArea(), 0, biggestBlob); 
meanGray = getMeanColor(biggestBlob); 

// display filtered blobs 
cvMerge(originalThr, originalThr, originalThr, NULL, displayedImage); 

for (i = 0; i < blobs.GetNumBlobs(); i++) 
{ 
     currentBlob = blobs.GetBlob(i); 
     currentBlob->FillBlob(displayedImage, CV_RGB(255,0,0)); 
} 

,那麼你可以根據你的需要就可以打電話AreaPerimeter

+2

blob大小我正在與EmguCV。我可以在EmguCV中調用cvbloblib嗎? – user1217904 2012-03-02 08:40:24