bin gerade dabei zwei Bilder miteinander zu verrechnen, hier gegeneinander aufzudividieren. Dazu gehe ich wie folgt vor:
1. Ich erzeuge 3 Vektoren mit der Anzahl der Bildpixel
Code: Alles auswählen
Dim AddImage1.s(Width*Height)
Dim AddImage2.s(Width*Height)
Dim ResultImage.s(Width*Height)
Code: Alles auswählen
CatchImage(#Image_2,dest,len)
Code: Alles auswählen
StartDrawing(ImageOutput(#Image_2))
i=1
For h = 1 To Height-1
For w = 1 To Width-1
strTMP.s = Str(Red(Point(w,h))) + ";"
strTMP.s + Str(Green(Point(w,h))) + ";"
strTMP.s + Str(Blue(Point(w,h)))
AddImage1(i) = strTMP.s
i+1
Next
Next
StopDrawing()
(Anmerkung: Speichere ich die Bilder in eine Datei und schaue Sie mir an, sind diese OK)
5. Ich Berechne die Bilder und speichere die Daten in den 3. Vektor
Code: Alles auswählen
Procedure.s Division(r1val.i,g1val.i,b1val.i,r2val.i,g2val.i,b2val.i)
; E = (256 x I) / (M + 1) (Bilder dividieren) Quelle: http://docs.gimp.org/de/gimp-concepts-layer-modes.html
ProcedureReturn Str((r1val * 256)/(r2val + 1)) + ";" + Str((g1val * 256)/(g2val + 1)) + ";" + Str((b1val * 256)/(b2val + 1))
EndProcedure
For i = 1 To (Width*Height)-1
ResultImage(i) = Division(Val(Left(AddImage2(i),3)),Val(Mid(AddImage2(i),5,3)),Val(Right(AddImage2(i),3)),Val(Left(AddImage1(i),3)),Val(Mid(AddImage1(i),5,3)),Val(Right(AddImage1(i),3)))
Next
Hat jemand eine Idee wo mein Denkfehler liegt?
Nachtrag: So schreibe ich das neue Bild !!
Code: Alles auswählen
StartDrawing(ImageOutput(#Image_Add))
i=1
For h = 1 To Height-1
For w = 1 To Width-1
Plot(w,h,RGB(Val(Left(ResultImage(i),3)),Val(Mid(ResultImage(i),5,3)),Val(Right(ResultImage(i),3))))
i+1
Next
Next
StopDrawing()