def barycenter(image_,minx_,miny_,maxx_,maxy_,thresh_,border_):
bw_=image_[minx_:maxx_+1,miny_:maxy_+1]>thresh_
[Y,X]=np.meshgrid(range(miny_,maxy_+1),range(minx_,maxx_+1))
region=regionprops(bw_)
minx,miny,maxx,maxy=region[0].bbox
Px_=(X*bw_).sum().astype(float)/bw_.sum()
Py_=(Y*bw_).sum().astype(float)/bw_.sum()
minx_=X[minx,miny]-border_
miny_=Y[minx,miny]-border_
maxx_=X[maxx,maxy]+border_
maxy_=Y[maxx,maxy]+border_
return Px_,Py_,minx_,miny_,maxx_,maxy_
def barycenter2(image_,minx_,miny_,maxx_,maxy_,thresh_,border_):
bw_=image_[minx_:maxx_+1,miny_:maxy_+1]>thresh_
[Y,X]=np.meshgrid(range(miny_,maxy_+1),range(minx_,maxx_+1))
region=regionprops(bw_)
Px_,Py_=region[0].centroid
Px_+=minx_
Py_+=miny_
minx,miny,maxx,maxy=region[0].bbox
minx_=X[minx,miny]-border_
miny_=Y[minx,miny]-border_
maxx_=X[maxx,maxy]+border_
maxy_=Y[maxx,maxy]+border_
return Px_,Py_,minx_,miny_,maxx_,maxy_
%timeit region[0].centroid