How to remove background from an image ?
이전 댓글 표시
How to remove the artificial background colors and characters from an image and only remain the main object ?
I attached a sample image

답변 (1개)
Image Analyst
2015년 6월 10일
0 개 추천
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
Victor Yi
2015년 6월 10일
Image Analyst
2015년 6월 10일
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
2015년 6월 11일
Image Analyst
2015년 6월 11일
Try adjusting the saturation threshold. Or use bwareaopen() to get rid of small blobs.
카테고리
도움말 센터 및 File Exchange에서 Convert Image Type에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
