Attempting to Crop binary image

I want the white section of this image I took,
I used this code to attempt a crop,
[rows, columns] = find(ProperlyOrientedBinaryBlock);
topRow = min(rows);
bottomRow = max(rows);
leftColumn = min(columns);
rightColumn = max(columns);
croppedImage = ProperlyOrientedBinaryBlock(topRow:bottomRow, leftColumn:rightColumn);
imshow(croppedImage)
I'm not getting the result I expect. Anyone have any idea?

댓글 수: 1

Satyajeet Sasmal
Satyajeet Sasmal 2015년 11월 16일
Could you provide us with your workflow? What does the "ProperlyOrientedBinaryBlock" function do?

댓글을 달려면 로그인하십시오.

답변 (2개)

Image Analyst
Image Analyst 2015년 11월 16일

1 개 추천

Try this:
grayImage = imread('binary.jpg');
binaryImage = grayImage > 128;
subplot(2, 1, 1);
imshow(binaryImage);
% Get convex hulls
binaryImage2 = bwconvhull(binaryImage, 'objects');
% Extract largest blob only
binaryImage2 = bwareafilt(binaryImage2, 1);
% Now you can crop:
[rows, columns] = find(binaryImage2);
topRow = min(rows);
bottomRow = max(rows);
leftColumn = min(columns);
rightColumn = max(columns);
croppedImage = binaryImage(topRow:bottomRow, leftColumn:rightColumn);
subplot(2, 1, 2);
imshow(croppedImage)
It's not super robust - if the blobs are broken up or nested, it's possible that it would need some more code to get it perfect, but it will work for rectangular Lego blocks as long as they're not too broken apart.

댓글 수: 1

manimuthu Venu
manimuthu Venu 2020년 9월 9일
Is it possible to get the original coordinates of the cropped image, so that it can be merged in the same position in another image? thanks a lot in advance

댓글을 달려면 로그인하십시오.

Thorsten
Thorsten 2015년 11월 16일
편집: Thorsten 2015년 11월 16일

0 개 추천

The image contains some spurious white points, e.g. at (950,3). You can delete them using erosion
se = strel('disk',1)
erodedB = imerode(B,se);

카테고리

도움말 센터File Exchange에서 Image Processing Toolbox에 대해 자세히 알아보기

질문:

2015년 11월 12일

댓글:

2020년 9월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by