bwareaopen creates a noisy result rather than cleanly removing small objects
4 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Faraz
il 20 Gen 2014
Risposto: Image Analyst
il 20 Gen 2014
Hi. I want to remove the diacritics from some arabic text. I read that the best option would be to use morphological opening. And hence the function
bwareaopen
Now in the example in the link here: http://www.mathworks.co.uk/help/images/ref/bwareaopen.html it has cleanly removed small objects. But in my case it tends to produce a noisy result
This is with the pixel value of 50, but produces the same result even if I use 5 or 500?
Why is it not working as it is shown in the tutorial?
Thank you
0 Commenti
Risposta accettata
Bruno Pop-Stefanov
il 20 Gen 2014
Make sure that you call bwareaopen on a binary image. I executed the following code on the attached JPEG image and it worked:
% Read original image
I = imread('inputimg.jpg');
figure(1);
imshow(I)
% Convert to binary image
BW = im2bw(I, 0.5);
figure(2);
imshow(BW)
% Do morphological opening to remove small connected components
BW2 = bwareaopen(BW, 50);
figure(3);
imshow(BW2)
2 Commenti
Bruno Pop-Stefanov
il 20 Gen 2014
Great! Can you please accept my answer? I believe there is a link on the left.
Più risposte (1)
Image Analyst
il 20 Gen 2014
It looks like you somehow ran it on the uint8 jpeg image instead of a binary image. I can see jpeg block artifacts.
When it says "numeric array" it probably means that if you give it a double array of 0's and 1's it will interpret that automatically as a binary image of trues and falses. I don't think it means it can take a gray scale image.
0 Commenti
Vedere anche
Categorie
Scopri di più su Image Processing and Computer Vision in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!