how to resize an object in binary image ?

i try to resize (minimize) an object in binary image, but I get the whole picture is to be small. even though I just wanted to minimize only its object. please help me. thanks

 採用された回答

Image Analyst
Image Analyst 2016 年 3 月 20 日

0 投票

If you want to shrink a binary image in place, without cropping out, then you can use imerode() to eat away outer layers of the binary blob(s).

4 件のコメント

ElizabethR
ElizabethR 2016 年 3 月 20 日
編集済み: Walter Roberson 2016 年 3 月 20 日
hi Image Analysis, no.. i don't meant to shirk object.
i have image like this. i want to resize object, so it becomes like the image on the right.
how to make it ? thanks
Image Analyst
Image Analyst 2016 年 3 月 20 日
You can use padarray() to add black all around the image. This will enlarge the array. Then, to make it smaller, to any size, even the original size, you can use imresize():
binaryImage = padarray(binaryImage, 100);
binaryImage = imresize(binaryImage, [300, 300]); % Whatever size you want.
If you want it the same size as the original, do this:
[rows, columns] = size(binaryImage); % Save original size.
binaryImage = padarray(binaryImage, 100);
binaryImage = imresize(binaryImage, [rows, columns]); % Same size as original.
ElizabethR
ElizabethR 2016 年 3 月 20 日
thank you very much Image Analyst, it working perfectly.. :D may i ask one question again ? i want to convert image into polar coordinate(unit circle) with the object is on the center of the circle. i try to convert this image using cart2pol, but i can get image like this. So, how to make this image ? :D thank you so much
Image Analyst
Image Analyst 2016 年 3 月 20 日
You can create a circle mask as shown in the FAQ: http://matlab.wikia.com/wiki/FAQ#How_do_I_create_a_circle.3F
So if the mask is true in the circle and false outside, do
binaryImage(~mask) = true;
For what it's worth, I've also attached a circle masking demo.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 3 月 20 日

0 投票

You need to extract the object first and imresize() on the extracted part. Consider using regionprops with the Image property to get the extracted object.

3 件のコメント

ElizabethR
ElizabethR 2016 年 3 月 20 日
hi Wlater, thanks for answare my question. but, How to extracted the object ?
Walter Roberson
Walter Roberson 2016 年 3 月 20 日
props = regionprops(YourBinaryImage, 'Image');
extracted_image = props.Image;
smaller_extracted = imresize(extracted_image, [64 64]); %example output size
ElizabethR
ElizabethR 2016 年 3 月 21 日
hi Walter, thanks you so much.. it's working perfectly, now i can extract the object .. but, i want the background ( black ) still there.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeConvert Image Type についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by