How to remove background from an image ?
Mostrar comentarios más antiguos
How to remove the artificial background colors and characters from an image and only remain the main object ?
I attached a sample image

Respuestas (1)
Image Analyst
el 10 de Jun. de 2015
0 votos
What are you calling background? And what is "artificial"? What is your definition of "artificial"? You can mask out parts of the image. See my attached demo for that. Can the item for sale in the middle of the picture be any wild colors? Or will they always be grayscale? Please upload 2 or 3 images along with desired output images.
4 comentarios
Victor Yi
el 10 de Jun. de 2015
Image Analyst
el 10 de Jun. de 2015
What you might try is to convert the RGB image into HSV color space with rgb2hsv(). Then threshold at some high s value because the computer graphics will all be highly saturated, pure colors. Then set those pixels to white or something. Something like
% Convert RGB image into HSV color space.
hsvImage = rgb2hsv(rgbImage);
% Extract individual H, S, and V images.
h = hsvImage(:,:, 1);
s = hsvImage(:,:, 2);
v = hsvImage(:,:, 3);
% Threshold to find vivid colors.
mask = v > 0.7;
% Make image white in mask areas:
h(mask) = 0;
s(mask) = 0;
v(mask) = 1;
% Convert back to RGB
hsvImage = cat(3, h, s, v);
newRGB = hsv2rgb(hsvImage);
Victor Yi
el 11 de Jun. de 2015
Image Analyst
el 11 de Jun. de 2015
Try adjusting the saturation threshold. Or use bwareaopen() to get rid of small blobs.
Categorías
Más información sobre Image Category Classification en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
