"vislabels" detecting background as an object
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Abdul Hannan Qureshi
el 18 de Abr. de 2022
Comentada: Image Analyst
el 18 de Abr. de 2022
I want to detect number of lines in the image below:
However, I am getting following output:
Why it is picking background as object count. Can someone advise me what I am missing?.
"bwconncomp" outcome is shown below.
cc =
struct with fields:
Connectivity: 8
ImageSize: [5023 5036]
NumObjects: 9
PixelIdxList: {1×9 cell}
I am using following simple code:
a = imread ('Image.png');
b = rgb2gray(a);
d=im2bw(b);
vislabels(d);
cc=bwconncomp(d)
0 comentarios
Respuesta aceptada
Image Analyst
el 18 de Abr. de 2022
You need to call imclearborder since your image has a white frame surrounding the black background.
rgbImage = imread ('Image.png');
grayImage = rgbImage(:,:,1); % Take red channel (faster than rgb2gray).
binaryImage = grayImage > 128;
% Get rid of white frame around the lines.
binaryImage = imclearborder(binaryImage);
imshow(binaryImage)
% Count lines
[labeledImage, numLines] = bwlabel(binaryImage);
caption = sprintf('Found %d lines.', numLines);
title(caption, 'FontSize',16)
2 comentarios
Image Analyst
el 18 de Abr. de 2022
You're welcome. Can you then click the "Accept this answer" link to let everyone know it's resolved? Thanks in advance. 🙂
Más respuestas (0)
Ver también
Categorías
Más información sobre Computer Vision with Simulink en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!