Remove background from image
Afficher commentaires plus anciens
Hi, i'd like to remove the background from RGB images. Since this have to be done in a lot of images i'd like to automate this task.
Original image with background:

The image should be transformed as this one below, without background.

I have cropped the images as the first one, however, i'm getting in trouble to remove the background.
Réponses (1)
% read the image
inpict = imread('https://www.mathworks.com/matlabcentral/answers/uploaded_files/217934/mx01.jpeg');
% you could use color-based thresholding
% but with the low contrast and chroma, JPG damage is an obstacle
% in this case, there's plenty of object contrast in luma alone
Ymask = rgb2gray(inpict)<128;
Ymask = ~imfill(Ymask,'holes');
% adjust white level
inlevels = stretchlim(inpict).*[0; 1];
outpict = imadjust(inpict,inlevels);
% apply mask
outpict(repmat(Ymask,[1 1 3])) = 255;
imshow(outpict)
Catégories
En savoir plus sur Image Arithmetic dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
