blob detection in matlab

I am new to Matlab. My Gray scale image has Blobs and Lines. How to detect blobs?. Using 8-connctivity rules. Need to log the sizes of each blob followed by x,y of pixel?. I read about bwlabel. Is it possible to detect Blobs and lines separately?.

Answers (1)

Alexey Gordienko
Alexey Gordienko on 17 Aug 2017
Edited: Alexey Gordienko on 17 Aug 2017
Hello! Here is my example of processing a binary image for highlighting license plates of cars using blob analysis
function [BBOX_OUT, NUM_BLOBS, LABEL] = CCA(Image)
BBOX_OUT = [];
NUM_BLOBS = [];
LABEL = [];
%%connected component analisys
hblob = vision.BlobAnalysis;
hblob.CentroidOutputPort = false;
hblob.MaximumCount = 3500;
hblob.Connectivity = 4;
hblob.MaximumBlobArea = 6500;
hblob.MinimumBlobArea = 200;
hblob.LabelMatrixOutputPort = true;
hblob.OrientationOutputPort = true;
hblob.MajorAxisLengthOutputPort = true;
hblob.MinorAxisLengthOutputPort = true;
hblob.EccentricityOutputPort = true;
hblob.ExtentOutputPort = true;
hblob.BoundingBoxOutputPort = true;
[AREA,BBOX,MAJOR,MINOR,ORIENT,ECCEN,EXTENT,LABEL] = step(hblob,Image);
imshow(LABEL*2^16)
numberOfBlobs = length(AREA);
allowableAxis = (((MAJOR./MINOR) > 3.8) & (AREA > 200) & (abs(rad2deg(ORIENT))<10) & (EXTENT> 0.6));
idx = find(allowableAxis);
keeperBlobsImage = ismember(LABEL, idx);
imshow(keeperBlobsImage)
LABEL = bwlabel(keeperBlobsImage, 4);
for i =1:length(idx)
BBOX_OUT((i),1:4) = BBOX(idx(i),1:4);
end
NUM_BLOBS = length(idx);
end

3 Comments

when I run your code an error 'Not enough input arguments' has appear.what shall I do.
Stephen23
Stephen23 on 6 Jun 2018
Edited: Stephen23 on 6 Jun 2018
@Yosef Asseaf: the function CCA requires one input argument: did you call it with one input argument?

Sign in to comment.

Categories

Tags

Asked:

mW
on 9 Feb 2015

Commented:

on 6 Jun 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!