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?.
댓글 수: 1
Erik S.
2015년 2월 9일
can you provide an example image?
답변 (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
Yosef Asseaf
2018년 6월 6일
when I run your code an error 'Not enough input arguments' has appear.what shall I do.
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.
카테고리
도움말 센터 및 File Exchange에서 Detect, Extract, and Match Features에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!