LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

what is the best and fastest way to track bead edge ?

right now i'm using high speed camera to track a bead edge(mono-camera).
i'm not sure usually what is the best way to track a bead black edge? since we want to run it as fast as we can.
the image is shown as follows. i just want to track the left side of the edge.


Fig.1 Image

thank you very much,

best,

Jack





0 Kudos
Message 1 of 5
(2,920 Views)

"weichengatech" <x@no.email> wrote in message news:1169055608316-464932@exchange.ni.com...
right now i'm using high speed camera to track a bead edge(mono-camera). i'm not sure usually what is the best way to track a bead black edge? since we want to run it as fast as we can.the image is shown as follows. i just want to track the left side of the edge.<img src="http://www.prism.gatech.edu/%7Egtg268p/BFP/beads.bmp"> Fig.1 Imagethank you very much,best,Jack


I'd try to set a few line ROI's, and do a threshold on them..


Regards,


Wiebe.
0 Kudos
Message 2 of 5
(2,901 Views)
Hello Jack,

There are a couple of ways to do this kind of processing but the way I would suggest is to perform a simple "find geometric shape" function and search for circles.  This will return an array of circles that have been found. You can then index the array for whichever circle has the largest radius, or to be more precise, has the closest value to the expected circle radius.  You then need to only subtract the radius from the returned circle's center point's x coordinate to find the left side of the bead..  I have attached a very simple example VI that does this.  I hope this helps.  Thanks and have a great day. 

Regards,
Mark T
Applications Engineer
National Instruments
0 Kudos
Message 3 of 5
(2,888 Views)

"Mark _T" <x@no.email> wrote in message news:1169439007094-466510@exchange.ni.com...
Hello Jack, There are a couple of ways to do this kind of processing but the way I would suggest is to perform a simple "find geometric shape" function and search for circles.&nbsp; This will return an array of circles that have been found. You can then index the array for whichever circle has the largest radius, or to be more precise, has the closest value to the expected circle radius.&nbsp; You then need to only subtract the radius from the returned circle's center point's x coordinate to find the left side of the bead..&nbsp; I have attached a very simple example VI that does this.&nbsp; I hope this helps.&nbsp; Thanks and have a great day.&nbsp; Regards,Mark TApplications EngineerNational Instruments



FindCircle2.vi:
http://forums.ni.com/attachments/ni/170/225177/1/FindCircle2.vi



Mark,


This is a lot easier, but I'm pretty sure it's not as fast (in execution, it is faster to make).


Regards,


Wiebe.
0 Kudos
Message 4 of 5
(2,881 Views)
Hello Wiebe,

Yes the example I have posted is very simple but should still be quick for processing.  I agree that using ROIs will reduce the processing on the image so if you still need it to be faster then after the first iteration of finding the location of the circle you can search a ROI that is closest to the image and update the ROI depending on an estimated movement of the image.  If you have a small enough ROI it is possible to perform a line edge detection and find out the new position of the object according to that but it will also depend on which direction the object is moving.  I hope this information helps.  Let me know if you have anymore questions.  Thanks and have a great day.

Regards,
Mark T
Applications Engineer
National Instruments
0 Kudos
Message 5 of 5
(2,868 Views)