blob detection in matlab
34 views (last 30 days)
Show older comments
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
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
Image Analyst
on 6 Jun 2018
Yusef, see my Image Segmentation Tutorial https://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads_desc I think it will help you.
See Also
Categories
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!