Hallo liebes Forum,
ich habe eine Thresholding-Programm geschrieben, welches aber recht langsam ist.
Da ich noch LV Anfänger bin habe ich hier schon mein bestes gegeben, aber wenn der ein oder andere nch eine Idee hat,
wie man dieses Program schneller werden lassen kann, wäre das super.
Zum Programm:
1. Es wird ein Array eingelesen, in Form eines Bildes.
(Daran kann ich leider nichts ändern, dass sind meine Ausgangs vorgaben. Es MUSS mit einem Array gearbeitet werden.)
2. Es wird Threshold bestimmt, nach dem folgendem Algorythmus:
<blockquote>a) An initial threshold (T) is chosen, this can be done randomly or according to any other method desired.
b) The image is segmented into object and background pixels as described above, creating two sets:
<blockquote>G1 = {f(m,n):f(m,n)>T} (object pixels)
G2 = {f(m,n):f(m,n)leT} (background pixels) (note, f(m,n) is the value of the pixel located in the mth column, nth row)</blockquote>
c) The average of each set is computed.
<blockquote> m1 = average value of G1
m2 = average value of G2</blockquote>
d) A new threshold is created that is the average of m1 and m2
T’ = (m1 + m2)/2
e) Go back to step b), now using the new threshold computed in step four, keep repeating until the new threshold matches the one before it (i.e. until convergence has been reached).
(Quelle: Wikipedia)</blockquote>
Diesen Algorythmus würde ich gerne beibehalten, da er für die Bilder, die ich bearbeiten muss am besten funktioniert.
3. Es wird ausgezählt wie viele Werte unter und über dem Threshold liegen.
Das wirklich langsame an dem Programm ist der Thresholding Teil und zu dem hätte ich gerne Hilfe.
Kann man den schlanker Implementieren, sodass das ganze schneller wird?
Jemand Ideen dazu?
Vielen Dank im Vorraus!
Rebecca
test.vi (Größe: 27,36 KB / Downloads: 212)
in LV 8.6