Can I increase FPS by only digitizing rows of pixels in ROI [closed]

asked 2019-03-05 12:27:31 -0600

Total Open CV newbie. I am considering project that would track the motion of the tip of rod as it moved straight back and forth in the field of vision, sort of like watching a pool cue stick from the side as someone makes a shot.

Since I am only interested in the area where the tip would be extending and retracting, could I skip digitizing the rows where the cue stick tip should never go? This should decrease the time to read the image from the camera and decrease the time to analyze the image.

If there is a better place to ask the question please let me know.

TIA Adk Chris

edit retag flag offensive reopen merge delete

Closed for the following reason not a real question by berak
close date 2019-03-05 12:39:44.663815

Comments

sounds like a case of "premature optimization" to me ;)

"make it work. then make it fast. in exactly that order."

berak gravatar imageberak ( 2019-03-05 12:36:27 -0600 )edit

since it's obviously all speculation and hot air, let me close this for now.

please come back with a more concise problem, e.g. once you have tried to track your rod

berak gravatar imageberak ( 2019-03-05 12:41:19 -0600 )edit

and no, you cannot choose to digitize only selective lines

berak gravatar imageberak ( 2019-03-05 12:47:37 -0600 )edit

Just to add a comment: it is possible to read only certain rows of a camera, but only on industrial cameras. Even there you need to use the SDK of the camera, this is not possible from OpenCV.

I agree berak, this is an optimization you do when everything else works perfectly, you really know what you are doing, and you identified the camera bandwidth as a bottleneck of the process. So definitely not something I recommend for a "newbie".

kbarni gravatar imagekbarni ( 2019-03-07 10:57:03 -0600 )edit

Want to see if feasible before start!

Perhaps if I provide some more detail?

I need to track the end of a very thin rod as it is pulled out of the FOV. I can make any kind of fixture that would be needed. My idea is to back light the part and trap it between two opaque plates so that little to no light can get between the rod and the plates. The only backlit getting through would be the slot between the plates beyond the end of the rod. The FOV would be all dark except for where the light passes thru the empty slot between the plates.

For the process to work I would need a more that 60 frames per second and I cannot afford to go to low resolution. This is why I was hoping to sacrifice ROI / FOV to maximize FPS and resolution.

If ...(more)

Adk Chris gravatar imageAdk Chris ( 2019-03-07 11:35:35 -0600 )edit

Not all hot air. Current system uses line scan chips and lots of complicated optics. Looking for better way.

Adk Chris gravatar imageAdk Chris ( 2019-03-07 11:38:35 -0600 )edit

Current system gives equivalent of over 500 FPS and 400 (theoretical) DPI but hard to make and with optics real DPI closer to 20

Adk Chris gravatar imageAdk Chris ( 2019-03-07 11:45:02 -0600 )edit

As I said, it's possible, please refer to the camera manufacturer's SDK. It is impossible in OpenCV.

For industrial cameras that have this feature, I can recommend the following companies: Basler, PTGrey, uEye or similar.

kbarni gravatar imagekbarni ( 2019-03-08 14:18:42 -0600 )edit