LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Catch the motion of a cell (Vision Module necessary)

Hi everyone,

 

I would like to catch the motion of a cell in labview, to do that, I have created a VI which detect the features of the "border" of the cell. First, I have segmented the images (dilatation, Threshold, Particule filters) to obtain cleaned images with the cells. Then, I used a subVI Detect Features so I have obtained the coordinates of features points. But now, I stuck and I don't know how to continue. I tried to display a fitted ellipse of the features points without success. Could you please help me?

 

(Ps: Here is the WeTransfer Link with the CardioPick1.avi. https://we.tl/t-HR2NnY8P91 )

 

Best regards, thanks,

 

Paul_Dep

0 Kudos
Message 1 of 2
(486 Views)

Hello, Paul.

 

     You have an interesting (and challenging) task to perform, namely using LabVIEW Vision to (a) determine the boundary of a cell from an IMAQ Image of a video (.avi) frame, and (b) to parameterize this boundary by determining the equations of the ellipse that best fits this boundary.  Both are relatively advanced (LabVIEW) topics.

 

     Thank you for providing the VI that you are using for this Project.  Here are some questions and suggestions:

  • Are you using LabVIEW Project (which would be a file with the extension .lvproj that "points to" (or references) all of the VIs, including the "Track Motion - Feature Detection" VI that you attached?  [Suggestion -- DO NOT USE ALL CAPITAL LETTERS -- it makes it seem as though you are "shouting", and, as a side issue, is more difficult to read and comprehend.]
  • Am I correct that this is the only VI that you have written thus far?
  • How much LabVIEW experience do you have?  In particular, before tackling a fairly complex topic like LabVIEW Vision, it is a good idea to have a year or so experience programming in LabVIEW, including understanding the concepts of Data Acquisition (DAQ and DAQmx), sampling and how LabVIEW handles "time" as a data primitive, and a good understanding of the concept of Data Flow, on which LabVIEW is based.
  • Have you experience with Numerical Analysis?  If I gave you a set of points represented by an array of (x, y) clusters (i.e. a Cluster with an X and a Y coordinate), do you know (in principle) how to return the equation of the (unique) straight line, y(i) = m x(i) + b with slope "m" and y intercept "b" that fits the data points best in the least-squares sense?
  • LabVIEW does have curve-fitting algorithms that can find the best-fit ellipse for you.  Sometimes, however, it is instructive (and helps you learn "what you are doing") to "do it yourself".  LabVIEW makes it (fairly) easy to, for example, generate a set of points known to fit a particular ellipse;
    • Think about how you would mathematically describe the equation for an ellipse.  What coordinate system might be useful to use?
    • How do you model "noise" (or uncertainty) in your data?  [I'm certain that your cell boundaries are not exactly fit by an ellipse ...]
    • Once you have a generated data set that come from an ellipse of known parameters, you can test any algorithm that attempts to estimate (or "fit, in the least-squares sense") those parameters.  If the algorithm is robust, 
      1. It should give you values of "m" and "b" that match very closely the value of these quantities used to generate the test data.
      2. If you built "noise" into your data model, the estimates of "m" and "b" should scale with the size of the noise.  There should be an "interesting" relationship between "data noise" and "parameter estimation variation" (which you can estimate by generating 10 sets of data using a fixed "noise" parameter for the x and y data points, and seeing how the estimated m and b values vary with the noise value].
    • Even if you used the Curve Fitting routines that LabVIEW provides, the exercise of making a model (with noise) and doing some fits to ensure you get "a reasonable result" as outlined in the previous bullet points is a good idea.
  • LabVIEW provides Express VIs (including the Vision Assistant) to help you "get started" in complex systems (such as LabVIEW Vision).  As with the Dreaded DAQ Assistant (which I discourage LabVIEW beginners from using, as it quickly becomes a "crutch" that prevents them from doing anything except the most elementary Data Acquisition Tasks), at some point, you are going to need to have a pretty good understanding of LabVIEW Vision and IMAQdx Image Processing.
  • How were the Images acquired?  I notice that the (single) VI that you attached starts with a Video (.avi) file -- where did this come from?  Is this another LabVIEW program that you wrote (or used) to generate these Images?  What is the format of an individual Frame of this video file?  Color or GrayScale?  What size?  What frame rate?
  • Few of us are going to want to go to an unknown (and untrusted) site to pick up a video file of unknown origin.  Please attach a few Image frames (and provide particulars of the image format so we can open them in IMAQdx) and tell us what we should expect to see.

Bob Schor

0 Kudos
Message 2 of 2
(459 Views)