フィルターのクリア

How to make binary image more rounded, closer to ellipsoid shape?

1 回表示 (過去 30 日間)
Ivan Shorokhov
Ivan Shorokhov 2015 年 8 月 24 日
回答済み: Image Analyst 2015 年 8 月 25 日
Given: I have following binary image:
Want: I want to make it more rounded, (but not bigger than original bounding box) as follows.
Currently done:
I have tried 'imdilate'
close all; clear all;clc;
o_circ = imread('to_round.jpg');
bw_circ = im2bw(o_circ, graythresh(o_circ));
bw_circ_2 = imdilate(bw_circ, strel('disk',30));
figure(1);imshow(bw_circ_2);
But it did't work as I wanted.
Needed: So what I actually need is to make original shape, as close a possible to ellipsoid shape. I guess I could use the regionprops, but I'm quite sure how to use all the values to plot an ellipse...
st = regionprops(bw_circ,'Centroid','MajorAxisLength','MinorAxisLength','Eccentricity');
[MATLAB version]
R2014a

採用された回答

Walter Roberson
Walter Roberson 2015 年 8 月 24 日

その他の回答 (1 件)

Image Analyst
Image Analyst 2015 年 8 月 25 日
You could try imclose() to do a morphological closing operation.
Or you could call imconvhull() to get the convex hull of each region.

Community Treasure Hunt

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

Start Hunting!

Translated by