how to remove black margines automatically from images?

19 次查看(过去 30 天)
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 个评论
Image Analyst
Image Analyst 2015-1-30
Just use imcrop() or regular indexing to extract a subimage.
sara
sara 2015-1-30
编辑:sara 2015-1-30
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

请先登录,再进行评论。

采纳的回答

Image Analyst
Image Analyst 2015-1-30
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 个评论
Image Analyst
Image Analyst 2020-1-4
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);

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Language Support 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by