blob detection in matlab
34 次查看(过去 30 天)
显示 更早的评论
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?.
回答(1 个)
Alexey Gordienko
2017-8-17
编辑:Alexey Gordienko
2017-8-17
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 个评论
Image Analyst
2018-6-6
Yusef, see my Image Segmentation Tutorial https://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862&sort=downloads_desc I think it will help you.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Processing Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!