why does `imfill` fill the whole image?

2 vues (au cours des 30 derniers jours)
Ziming Zhong
Ziming Zhong le 4 Nov 2017
Commenté : Ziming Zhong le 9 Nov 2017
Hi! I converted my image from HSV to bw, and then use `bwareaopen` to eliminate some background noise. After that I still find some 'holes' in the white disks that I need. So I was thinking to use 'imfill' to eliminate the holes. However, after 'infill', I either get a white image showing nothing (this happens when I didn't save the image out and directly called 'imfill' after `bwareaopen`) or the same image as after bwareaopen`. I don't understand why. Could somebody help me out? Thank you!
my codes:
bwIm2=bwareaopen(bwIm,10)
bw=imfill(bwIm2,'holes')

Réponse acceptée

Akira Agata
Akira Agata le 6 Nov 2017
You should delete light area connected to image border before applying imfill. By using imclearborder function before applying imfill, you can obtain the target image, like:
bwTmp = imclearborder(bwIm);
bw = imfill(bwTmp,'holes');

Plus de réponses (0)

Catégories

En savoir plus sur Image Segmentation and Analysis dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by