Remove background from image

17 visualizaciones (últimos 30 días)
Valnyr Lira
Valnyr Lira el 3 de Mayo de 2019
Respondida: DGM el 30 de Abr. de 2023
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:
mx01.jpg
The image should be transformed as this one below, without background.
m001.jpg
I have cropped the images as the first one, however, i'm getting in trouble to remove the background.

Respuestas (1)

DGM
DGM el 30 de Abr. de 2023
% 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)

Community Treasure Hunt

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

Start Hunting!

Translated by