MATLAB: How to remove white background from image


Hello,I want to know how to remove white background completely from this image.what is the way?

Best Answer

I'd use min() to get the min in all three color channels. Then use bwareafilt() to get just the largest blob. This will be the rectangle. You can use find to find the first and last row and column and finally crop the image, something like this untested code.
grayImage = min(rgbImage, [], 3);
binaryImage = grayImage < 200;
binaryImage = bwareafilt(binaryImage, 1);
[rows, columns] = find(binaryImage);
row1 = min(rows);
row2 = max(rows);
col1 = min(columns);
col2 = max(columns);
% Crop
croppedImage = rgbImage(row1:row2, col1:col2, :);