Help for Otsu implementation from C

azrael jura.grozni at gmail.com
Sat Sep 22 19:24:29 CEST 2007


Thanks Man, I did it. It works fantastic.


On Sep 19, 9:33 pm, azrael <jura.gro... at gmail.com> wrote:
> I know. The translation is not so important to me, because this is
> going to just a little function that is working in the last step of
> the whole proces. The whole implementation wont be published and has
> just the meaning to implement a first alpha version of a face
> recognition system. It is nearly finished, and this is the only
> function I am missing. For this purpose I need it to work "EXACTLY".
>
> I know that it doesnt look pythonic. After I know that it works
> correctly, I am going to write a total Rewrite for the Beta Version.
>
> On Sep 19, 1:55 pm, Peter Otten <__pete... at web.de> wrote:
>
> > 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