Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

can i length stamp an image triggered by an encoder into a low level buffer

Hello.
I am triggering images of a fast moving web into a low level circular buffer. Can I stamp the image with the absolute encoder value at which it was captured?
Thanks for any help.
Rob.
0 Kudos
Message 1 of 8
(3,790 Views)
Hi,
 
You can add data like this....
(Just remember to read and write the file with image info.)
 
Thanx
 
AdamB
Applications Engineering Team Leader | National Instruments | UK & Ireland
0 Kudos
Message 2 of 8
(3,789 Views)
Thanks AdamB,
unfortunately your method would not be accurate enough. The images are aquiring into a buffer in hardware so there is an unknown time between capturing the image and pulling it out of the buffer. I need a way of stamping it at capture time or at least relating an image number to an encoder position..
Any ideas?
Thanks for your help.
0 Kudos
Message 3 of 8
(3,775 Views)

Hi there,

Sorry that's not going to work. I assumed you had the acquisition synchronized with the encoder read. (Therefore all you would need to do it know which position applies to which frame, easy if you have a start trigger)

Unfortunately then the only way of doing this would be to synchronize the acquisition with the encoder position.  Are you taking the frames every 1/30th (at a timed interval) of a second, or are you triggering the camera every say 50 pulses.

Decimating the encoder position for use as a triggering pulse for the camera would be the best way to do this type of acquisition.  This way the frame rate will purely depend on the speed of the conveyor belt.

How are you taking in the encoder position?

How is the frame rate set up?

Thanks

AdamB

Applications Engineering Team Leader | National Instruments | UK & Ireland
0 Kudos
Message 4 of 8
(3,763 Views)
Thanks again Adam,
To answer your questions, it's a linescan application with the linetrigger being dynamically generated, on a TIO card from an encoder input, in order to give square pixels (it's a TDI camera). There are no frametriggers as it is a full web inspection and each frame is started as soon as the last is finished.
It sounds like there is no way to do what I want in hardware but thanks for your help anyway. I'll have to count encoder pulses and multiply by the frame number. Hopefully that will be accurate enough.
Cheers.
Rob.
0 Kudos
Message 5 of 8
(3,751 Views)

Hello Rob,

 

I have almost the same application. It is a webinspection  where I need to detects defects with a linescan camera. The downweb (longitudinal) coordinate of the defect must be exchanged with a robot that cuts out the specific part. Since the robot is placed 25 m further away downweb, we synchronize both systems with a counterboard that counts each encoder pulse of 0.25 mm. Each m the robot is synchronised with the vision system by exchanging the (linetrigger) encoder position at the time of the m pulse rising edge to re-reference both systems.

The defect position within a page image is the encodercountervalue of the beginning of that specific page + the row position of the defect in the image translated to encoder pulses. Therefore I need to know the encoder value at the time of capturing that particular page very accuratelly. The framegrabber board does provide a (software) signal that generates a callback. Since we do not use a realtime OS, there is non predictable delay between the actual start of capturing the first line of a page to the execution of the callback in which I can read the actual encoder position. The accuracy of the positioning mainly depends on this delay.

Therefore I am very interested if you already found a solution for your problem, if needed with additional hardware?!?

 

Looking forward to your reply!

 

Robbert

0 Kudos
Message 6 of 8
(3,324 Views)

Hello Robbert, 

 

It is well known problem to get trigger information from the image. Not so far ago I've solved this problem with help of feature called "Chunk Data" which is implemented in Basler's camera. In particular Basler's Pilot GigE camera has the ability to add to each frame special block of data. One portion of this data is "Trigger Counter". This counter can be reset programmatically before start. After that the only thing you have to do is to send trigger signal to the camera, get the image and recieve trigger counter value from this image. 

 

So I suppose that functionality I've just described for Basler cameras might be exists in your camera and it would be great to use it.

 

I hope I helped you somehow!

 

Nikita.

Nikita Prorekhin
CLA
0 Kudos
Message 7 of 8
(3,319 Views)

Hi Nikita,

 

Thanks for your advise.

Unfortunattely, my camera link camera/framegrabber combination doesnt support this kind of feature.

I am afraid I have to use additional hardware..

 

Cheers,

Robbert

0 Kudos
Message 8 of 8
(3,310 Views)