Seite 2 von 2

Re: Bild nach links scrollen

Verfasst: 20.02.2011 23:23
von ts-soft
Der ist nicht von "ts-soft", der ist lediglich modifiziert by Thomas <ts-soft> Schulz :mrgreen:

Median-Filter kann ja nun alles oder nichts sein, meinst Du den Filter im Zusammenhang mit Prosodieerkennung?

PS: Schenk Deiner Frau ein Buch, damit wir nicht die ganzen Smileys ertragen müssen :wink:

Re: Bild nach links scrollen

Verfasst: 20.02.2011 23:54
von Falko
Naja, der Anfang sieht ja sehr eintönig aus. Man könnte ja gleich mit dem Raster von
Anfang an anfangen :mrgreen:

Code: Alles auswählen

EnableExplicit

CreateImage(1,400,110,24)
CreateImage(2,400,110,24)
Define i.l
Procedure Thread()
  Static LineYCounter=25 , LineYCounter2
  Static Zufall , oldMedian , first = #False
  Static Dim Daten(4)
  Define n
  Dim median(4)
 
  If first = #False          ;
    For n =0 To 4            ; Beim Ersten mal
      Daten(n)=Random(100)   ; DatenArray
    Next                     ; füllen
    first = #True            ;
  EndIf                      ;
 
  FreeImage(2)
  CopyImage(1,2)
  If StartDrawing(ImageOutput(1))
    Box(0,0,ImageWidth(1),ImageHeight(1),RGB(0,0,0))
   
    Line(ImageWidth(1)-1,5,1,1,RGB(0,100,0))
    Line(ImageWidth(1)-1,30,1,1,RGB(0,100,0))
    Line(ImageWidth(1)-1,55,1,1,RGB(0,100,0))
    Line(ImageWidth(1)-1,80,1,1,RGB(0,100,0))
    Line(ImageWidth(1)-1,105,1,1,RGB(0,100,0))
   
    If LineYCounter=25
      Line(ImageWidth(1)-1,5,1,100,RGB(0,100,0))
      LineYCounter=0
    Else
      LineYCounter+1
    EndIf
   
    DrawImage(ImageID(2), -1, 0)
   
    If LineYCounter2=4
      LineYCounter2=0
      CopyArray(Daten(), median())
      SortArray(median(),#PB_Sort_Ascending)
     
      Debug Str(Daten(0))+" "+Str(Daten(1))+" "+Str(Daten(2))+" "+Str(Daten(3))+" "+Str(Daten(4))+" | " +Str(median(0))+" "+Str(median(1))+" >"+Str(median(2))+"< "+Str(median(3))+" "+Str(median(4))+" "
           
      LineXY(ImageWidth(1)-5,105-Daten(1) ,ImageWidth(1)-1,105- Daten(2),RGB(175,0,0)) ;Ungefiltert
      ;Plot  (ImageWidth(1)-5,105-Daten(2), RGB(255,0,0))                              ;Ungefiltert
     
      LineXY(ImageWidth(1)-5,105-oldMedian,ImageWidth(1)-1,105-median(2),RGB(0,255,0)) ;Median-Filter 
     
      oldMedian = median(2)
      MoveMemory(@Daten(1), @Daten(0), 4*SizeOf(Integer))
     
      Daten(4)=Random(100)
    Else
      LineYCounter2+1
    EndIf
   
    StopDrawing()
  EndIf
  SetGadgetState(1,ImageID(1))
 
EndProcedure

CompilerIf #PB_Compiler_OS = #PB_OS_Windows
Procedure TimerCB(hWnd, uMsg, idEvent, dwTime)
  If idEvent = 1
    Thread()
  EndIf
EndProcedure
CompilerEndIf

If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ContainerGadget(2,10,10,395,110,0)
   ImageGadget(1,0,0,0,0,ImageID(1),0)
   
  
  CloseGadgetList()
  StartDrawing(ImageOutput(1))
  
  For i=5 To 105 Step 25 ; hier ein Anfangsraster
    LineXY(0,i,400,i,RGB(0,100,0))
  Next i
   For i=1 To 15
     LineXY(i*25,5,i*25,105,RGB(0,100,0))
   Next i
   
 StopDrawing()
  CompilerIf #PB_Compiler_OS = #PB_OS_Windows
  SetTimer_(WindowID(0), 1, 100, @TimerCB())
  CompilerElse
  AddWindowTimer(0, 1, 100)
  CompilerEndIf
  Repeat
     
     Select WaitWindowEvent()
        CompilerIf #PB_Compiler_OS <> #PB_OS_Windows
        Case #PB_Event_Timer
          If EventTimer() = 1 : Thread() : EndIf
        CompilerEndIf
        Case #PB_Event_CloseWindow
           End
     EndSelect
     
  ForEver

EndIf 
Gruß Falko

Re: Bild nach links scrollen

Verfasst: 21.02.2011 19:18
von Christian H
ts-soft hat geschrieben:Median-Filter kann ja nun alles oder nichts sein, meinst Du den Filter im Zusammenhang mit Prosodieerkennung?
http://en.wikipedia.org/wiki/Median_filter zur Beseitigung von "Spikes" in einen Signalstrom.
Wobei das Zufallssignal ja nur aus Spikes besteht.

Gruß
Christian

Re: Bild nach links scrollen

Verfasst: 21.02.2011 19:19
von ts-soft
Also ein Rauschfilter, danke.