フィルターのクリア

"vislabels" detecting background as an object

1 回表示 (過去 30 日間)
Abdul Hannan Qureshi
Abdul Hannan Qureshi 2022 年 4 月 18 日
コメント済み: Image Analyst 2022 年 4 月 18 日
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)

採用された回答

Image Analyst
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 件のコメント
Abdul Hannan Qureshi
Abdul Hannan Qureshi 2022 年 4 月 18 日
Thank you, issue resolved.
Image Analyst
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 ExchangeImage Processing Toolbox についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by