"vislabels" detecting background as an object
1 回表示 (過去 30 日間)
古いコメントを表示
Abdul Hannan Qureshi
2022 年 4 月 18 日
コメント済み: Image Analyst
2022 年 4 月 18 日
I want to detect number of lines in the image below:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/967990/image.png)
However, I am getting following output:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/967995/image.png)
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 件のコメント
採用された回答
Image Analyst
2022 年 4 月 18 日
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 件のコメント
Image Analyst
2022 年 4 月 18 日
You're welcome. Can you then click the "Accept this answer" link to let everyone know it's resolved? Thanks in advance. 🙂
その他の回答 (0 件)
参考
カテゴリ
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!