extract multiple images from white background individually

1 vue (au cours des 30 derniers jours)
Fateme Jalali
Fateme Jalali le 29 Juil 2016
Modifié(e) : Image Analyst le 29 Juil 2016
Hello,I want to extract images from white background. In order to analyze each image individually, I should have matrix of each image. My code works well when there is just one image on the white background. Can any one help me to extract more than 1 image from white background? This image is an example:
and my codes are:
rgbImage=imread('D:/2ta.jpg');
grayImage = min(rgbImage, [], 3);
binaryImage = grayImage < 200;
figure(1)
imshow(binaryImage)
%binaryImage1 = bwareafilt2(binaryImage,[10 50],1,1);
binaryImage1=(binaryImage==1)
figure(2)
imshow(binaryImage1)
[rows, columns] = find(binaryImage);
row1 = min(rows);
row2 = max(rows);
col1 = min(columns);
col2 = max(columns);
% Crop
croppedImage = rgbImage(row1:row2, col1:col2, :);
figure(3)
imshow(croppedImage)

Réponse acceptée

Image Analyst
Image Analyst le 29 Juil 2016
Modifié(e) : Image Analyst le 29 Juil 2016
You need to label your binary image and then get the bounding box of all blobs in it, then crop them out using the bounding box and the imcrop() function.
[labeledImage, numBlobs] = bwlabel(binaryImage);
props = regionprops(labeledImage, 'BoundingBox');
for k = 1 : numBlobs
thisBB = props(k).BoundingBox;
thisImage{k} = imcrop(rgbImage, thisBB);
imshow(thisImage{k});
drawnow;
imwrite(...... % If you want to save the cropped image to disk.
end
  1 commentaire
Fateme Jalali
Fateme Jalali le 29 Juil 2016
Thank you so much.This code is exactly what I need.

Connectez-vous pour commenter.

Plus de réponses (1)

Selva Karna
Selva Karna le 29 Juil 2016
you can use color based image segmentation process...........

Community Treasure Hunt

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

Start Hunting!

Translated by