Réponse acceptée

Image Analyst
Image Analyst le 28 Juil 2016
Modifié(e) : Image Analyst le 28 Juil 2016
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, :);

Plus de réponses (1)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by