bwareaopen creates a noisy result rather than cleanly removing small objects
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Faraz
am 20 Jan. 2014
Beantwortet: Image Analyst
am 20 Jan. 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 Kommentare
Akzeptierte Antwort
Bruno Pop-Stefanov
am 20 Jan. 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 Kommentare
Bruno Pop-Stefanov
am 20 Jan. 2014
Great! Can you please accept my answer? I believe there is a link on the left.
Weitere Antworten (1)
Image Analyst
am 20 Jan. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Image Processing and Computer Vision finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!