Background subtraction in an RGB Image
이전 댓글 표시
how can i do a background subtraction on an RGB image?

댓글 수: 6
Adam
2018년 11월 13일
Depends entirely on the image. In general terms the steps are to identify the background, then subtract it!
Fodio Longman
2018년 11월 13일
Adam
2018년 11월 13일
Code for what? Define a specific problem and someone might provide code, but this is far too vague. What counts as 'background'?
Image Analyst
2018년 11월 13일
Again, what constitutes as background? The white surround? The black surround? Something else? If it's the white, are you sure you don't want to crop instead of subtract?
Fodio Longman
2018년 11월 13일
Image Analyst
2018년 11월 13일
You can't. At best you could crop it down to the object in the image, giving a rectangular image. Images must remain rectangular and not have some ragged irregular shape.
답변 (3개)
Fodio Longman
2018년 11월 13일
0 개 추천
댓글 수: 1
Adam
2018년 11월 13일
And what do you want to replace it with? The colour of the axes behind?
Adam
2018년 11월 14일
Well, you can do something like this:
rgb = rand( 5, 5, 3 ); % Random image
rgb( 2, 3, : ) = [0 0 0]; % Turn a pixel black
rgb( 4, 3, : ) = [0 0 0]; % Turn a pixel black
mask = sum( rgb, 3 ) > 0;
figure; h = imagesc( rgb );
h.AlphaData = mask;
Obviously in your case you don't need the first 3 lines, they are just for me to create an example of an image with some black pixels.
Bear in mind though that this will make all black pixels transparent so that you see the colour of the axes underneath, so if you have bona fide black pixels elsewhere within your image this will make them transparent too which is not desirable.
In that case you would have to run some kind of algorithm which would work out the boundary of your desired image to segment out the background, but that is not my area of expertise. The remaining part would be the same though - however you create the background mask, just set its inverse as the AlphaData (Note that my mask above is actually the non-mask because we are setting it as AlphaData where 1 means opaque and 0 means transparent).
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!