why does `imfill` fill the whole image?

1 Ansicht (letzte 30 Tage)
Ziming Zhong
Ziming Zhong am 4 Nov. 2017
Kommentiert: Ziming Zhong am 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')

Akzeptierte Antwort

Akira Agata
Akira Agata am 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');

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by