Borrar filtros
Borrar filtros

bwareaopen creates a noisy result rather than cleanly removing small objects

3 visualizaciones (últimos 30 días)
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

Respuesta aceptada

Bruno Pop-Stefanov
Bruno Pop-Stefanov el 20 de En. de 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 comentarios
Faraz
Faraz el 20 de En. de 2014
Thank you. I read this on the help page and mistook for it being able to accept any image class:
BW can be a logical or numeric array of any dimension, and it must be nonsparse. The return value BW2 is of class logical.
Bruno Pop-Stefanov
Bruno Pop-Stefanov el 20 de En. de 2014
Great! Can you please accept my answer? I believe there is a link on the left.

Iniciar sesión para comentar.

Más respuestas (1)

Image Analyst
Image Analyst el 20 de En. de 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.

Community Treasure Hunt

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

Start Hunting!

Translated by