Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Also die Idee dahinter ist, dass man ein Bild hat, dieses Bild wird in Teilarrays zerlegt, deren Größe von Lcols bzw. Lrows angegeben wird.
In jedem dieser Teilarrays wird zuallererstz der Mittelwert berechnet, anschließend die Standardabweichung. Wenn man nun die Standardabweichung durch den mittelwert dividiert erhält man daraus den Kontrast. diese Zeile fehlte übrigens bisher noch, wie ich gerade sah, daher habe ich das Programm nochmals mitgeschickt.
Diese Werte werden dann also in einem neuen Array gespeichert, dass eben entsprechend der Teilarraygrößen kleiner ist, floor(numrow/ *Lrows).
Die jeweils vier Schleifen dienen also nun dazu, das gesamte Bils zu durchwandern, was die äußeren Beiden besorgen, die inneren beiden durchlaufen dann eben diese kleinen Teilarrays.
Wenn wir annehmen, dass Lcols 2 wäre und die Indexformel j+(n*Lcols) haben wäre das also j+ (n*2)
n=0 0+0 =0
1+0=1
n=1 0+2=2
1+2=3
usw
Also ich meine, dass das so funktionieren müßte.
Ich habe nun übrigens mal die funktionszeile, so geändert, dass gar keine Sterne mehr vorhanden sind.
long KontrastC(long *Brows, long *Bcols, long *Lcols, long *Lrows, TD1Hdl Bild, TD1Hdl Kontrast,long *test)
Tatsächlich scheint somit auch alles zu laufen. Nun zeigt sich allerdings ein viel größeres Problem. Urspünglich sollte das ja aus LV ausgelagert werden um diese Kontrastberechnung zu verschnellern. Nun da ich die Berechnung in LV und die in C parallel laufen habe ist es jedoch so, dass das ganze Programm wahnsinnig verlangsamt wurde, das geht so weit, dass LV schon gar keine Rückmeldung mehr gibt.
Das ist nun doch sehr frustrierend wie ich sagen muß, ist mein Code nun wirklich so viel schlechter als das was ich in LV machte (siehe Bild), das wiederspricht nun wirklich sehr allen aussagen die ich so hörte, dass man hohe Geschwindigkeitsgewinne zu erwarten hat wenn man etwas in einer DLL auslagert.
Läuft das nun scheinbar und es sind immernoch große Fehler enthalten, ist der code nur unglaublich schlecht aber die LV eigenen DLLs werden es doch kaum anders lösen, wie ist das nun zu erklären udn wie bekomme ich es damit nun wirklich verschnellert und nicht verlangsamt?
[code]/*Programm zur Kontrastberechnung und Bildarrayzerlegung