how to remove black margines automatically from images?

19 vues (au cours des 30 derniers jours)
sara
sara le 30 Jan 2015
how can i automatically remove black margines around border of an image,like the dark lines remains around an image when you scan it,there is also this link which describes about this,but can any one gives a better code,thanx http://uk.mathworks.com/matlabcentral/answers/128133-automatically-trim-remove-crop-black-borders-margins-from-images-volumes i also used imclearborder,but it wont work on my image,
  4 commentaires
Image Analyst
Image Analyst le 30 Jan 2015
Just use imcrop() or regular indexing to extract a subimage.
sara
sara le 30 Jan 2015
Modifié(e) : sara le 30 Jan 2015
there are more than one image,and the problem is that in one image the margin is on the right side,in another it is in left side,and even their size is different,in one image it is a thick line,another is a thin line, i will work on regular indexing to extract sub image,thank you

Connectez-vous pour commenter.

Réponse acceptée

Image Analyst
Image Analyst le 30 Jan 2015
I'm not sure why that is a problem. Just find the first and last column and crop like I suggested:
horizontalProfile = mean(grayImage, 1) > 10; % Or whatever.
firstColumn = find(horizontalProfile, 1, 'first');
lastColumn = = find(horizontalProfile, 1, 'last');
subImage = grayImage(:, firstColumn, lastColumn);
Is there a problem with that? I think it should handle the cases you mentioned. Does it not?
  5 commentaires
Image Analyst
Image Analyst le 4 Jan 2020
Oh, sorry - I didn't read closely enough, or I misinterpreted.
To get the bounding box of everything, here is one way
[r, c] = find(binaryImage);
row1 = min(r);
row2 = max(r);
col1 = min(c);
col2 = max(c);
croppedImage = grayImage(row1:row2, col1:col2);
khalil yossefi
khalil yossefi le 7 Jan 2020

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by