This forum is disabled, please visit https://forum.opencv.org

1 | initial version |

```
Seiko,
unless you posted this question some months ago I still stumbled into the same unanswered question. My answer would be:
Why don't you simply
1. do a distance transform (in python for example using ndimage.distance_transform_edt explained [here](http://pythonvision.org/basic-tutorial) some way down the page)
2. take the point with the largest distance as center and
3. take the corresponding distance as the radius?
The result should be a fastly computed maximum enclosed circle for all types of polygons.
Or am I wrong somehow?
Greets,
Frank
```

2 | No.2 Revision |

`Seiko,`

Seiko,

unless you posted this question some months ago I still stumbled into the same unanswered question. My answer would be:

~~Why don't you simply~~~~1.~~

do a distance transform (in python for example using ndimage.distance_transform_edt explained

~~[here](http://pythonvision.org/basic-tutorial)~~here some way down the~~page) 2.~~page)take the point with the largest distance as center

~~and 3.~~andtake the corresponding distance as the

~~radius?~~radius?

`The result should be a fastly computed maximum enclosed circle for all types of polygons. Or am I wrong somehow? Greets,`

~~Frank~~

3 | added code |

Seiko,

unless you posted this question some months ago I still stumbled into the same unanswered question. My answer would be: Why don't you simply

do a distance transform (in python for example using ndimage.distance_transform_edt explained here some way down the page)

take the point with the largest distance as center and

take the corresponding distance as the radius?

The result should be a fastly computed maximum enclosed circle for all types of polygons. Or am I wrong somehow? Greets, Frank

```
# +++calculate maximum enclosed circle+++
def maxEnclosedCircle(binent):
# binent is an array where the shape of interest has a value larger than 0
#distance transform
dist = ndimage.distance_transform_edt(binent>0)
#set radius to largest distance
radius=np.amax(dist)
#get index
flatind=np.argmax(dist)#index of flattened arrays
ind=np.unravel(flatind,dist.size)#convert to 2D index
#check if multiple maxima exist and how many
a=len(dist[dist==radius])
return ind,radius,a
```

Copyright OpenCV foundation, 2012-2018. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.