LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

track particles

Hi guys,

 

I have a question about tracking multiple particles in an image.  I coded up a program that will take an image and apply a threshold to the image at each numeric iteration (0-255).  At each iteration, the program thresholds the images at the numeric value (0-255) and then uses the particle analysis report to display the total number of particle.  I also overlap bounding boxes on the image to show the particles being tracked.  The question I have is about how LabVIEW numbers the particles.  At each iteration, the particles change nunmbers.

Ex:

Iteration 56: A particle is given the label number 4

Iteration 57: The same particle is given a new label number 5 

Iteration 58: The same particle is given the new label number 4

 

Is there a way to "tell" LabVIEW that once it finds a particle, to keep the label assigned to that particle constant?

 

Cheers,

Shivels

0 Kudos
Message 1 of 3
(2,565 Views)

Hi,

 

With a new threshold value also the number of particles will change.

So with e.g. the first iteration and threshold value X you have 7 particles, with the second iteration and threshold X+1 you might have 8 particles or more or less then 7.

With the number of particles also the indexing might change.

I don't know the way we index particles, but it's not possible to mark a particle permanently with an index using the particle analysis functions.

 

I also don't know another way to accomplish that, but maybe one of the other users here did something similar and can give you some advice.

 

 

Christian

0 Kudos
Message 2 of 3
(2,546 Views)

You might take the P particle positions in image N-1 and the Q particle positions in image N and calculate all the distances between the P points and the Q points (P x Q calculations, however there may be some linear algebra matrix functions which can do this faster).  Then find the smallest distance in the P x Q array and call that a match between a particle in image N-1 and image N.  Then find the next smallest distance, etc. until P or Q (whichever is smaller) particles have been matched between images N-1 and N.


By the way, if you know the maximum speed of particles in your image then you don't need to compare all P particles with all Q particles.  Just compare each of the P particles with only the particles of set Q which are within range such that they could have moved to those new positions.

 

Example:

in image #4 there are two particles of positions 1,1 and 10,12

in image #5 there are three particles of positions 1,2 and 2,3 and 11,12

If you know that particles can't move faster than 4 positions per image capture then clearly you don't need to compare the particle at position 1,1 in image #4 with the particle at position 11,12 in image #5.

 

Regards,

 

Leif Kirschenbaum, Ph.D.

LabVIEW user since 2.0
0 Kudos
Message 3 of 3
(2,531 Views)