Help for Otsu implementation from C
Peter Otten
__peter__ at web.de
Wed Sep 19 07:55:53 EDT 2007
azrael wrote:
> Can somone look at this
> def otsu(hi):
> fmax=-1.0
> border=len(hi)
> for i in range(border):
> if hi[i]!=0:break
> for j in range(border-1,0-1,-1):
> if hi[j] != 0:break
> s = sum([k*hi[k] for k in range(border)]) n = sum(hi) #
> product(im.size)
> n1=n2=csum=0.0
> for k in range(i,j):
> n1 += hi[k]
> n2 = n - n1
> csum+= k * hi[k]
> m1 = csum/ n1
> m2 = (s - csum)/n2
As I said in my previous post, try replacing this line
> sb = n1 * n2 * (m2 - m1)
with the original
sb = n1 * n2 * (m1 - m2) * (m1 - m2)
that has been commented out.
> if sb > fmax:
> fmax = sb
> V=k+1
> print V
> I try to implement it from C from this location.
Personally, I would start with a literal translation and not try to
improve it until it works.
Peter
More information about the Python-list
mailing list