フィルターのクリア

How to find the pixels of certain regions in a binary image

4 ビュー (過去 30 日間)
Efstathios Kontolatis
Efstathios Kontolatis 2017 年 1 月 12 日
回答済み: Image Analyst 2017 年 1 月 16 日
I have created a binary image which contains the edges of an image. I want to keep only the pixels of the regions that have an area bigger than 250 pixels. How can I do that?

採用された回答

Vishal Neelagiri
Vishal Neelagiri 2017 年 1 月 16 日
You might want to use the 'bwselect' function to select objects in a binary image. You can use this with the 'bwarea' function which calculates the area of objects in a binary image. You might want to refer to the following documentation links:
https://www.mathworks.com/help/images/labeling-and-measuring-objects-in-a-binary-image.html
https://www.mathworks.com/help/images/ref/bwselect.html
https://www.mathworks.com/help/images/ref/bwarea.html

その他の回答 (1 件)

Image Analyst
Image Analyst 2017 年 1 月 16 日
Don't use bwselect(), use bwareaopen. It does exactly what you asked for. From the help:
BW2 = bwareaopen(BW,P) removes all connected components (objects) that have fewer than P pixels from the binary image BW, producing another binary image, BW2.
Here is what you'd do:
% Extract only those blobs with 251 pixels or more.
% Blobs 250 and smaller will be removed.
binaryImage = bwareaopen(binaryImage, 251);
You might also be interested in bwareafilt() which extracts the N largest or smallest blobs, or blobs within a specified range of areas. It can also do what you want.
binaryImage = bwareafilt(binaryImage, [251, inf]);

カテゴリ

Help Center および File ExchangeImage Segmentation and Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by