How to remove background from an image ?
Show older comments
How to remove the artificial background colors and characters from an image and only remain the main object ?
I attached a sample image

Answers (1)
Image Analyst
on 10 Jun 2015
0 votes
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 Comments
Victor Yi
on 10 Jun 2015
Image Analyst
on 10 Jun 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
on 11 Jun 2015
Image Analyst
on 11 Jun 2015
Try adjusting the saturation threshold. Or use bwareaopen() to get rid of small blobs.
Categories
Find more on Image Category Classification in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!