I have a robotic system to develop, in first phase of the project I need to track an object. So I placed a geometrical marker on the object to estimate it's pose (rotation, translation). It all works fine until the target object moves a little faster and motion blur is introduced to the input images from camera.

So I have two options:

  • Either deconvolve the images to remove blur before object tracking
  • OR use a camera with very high frames per second

The problem is first solution is too slow for a real-time system and second option is too expensive.

Please tell me if there is a more efficient technique than older ones (Weiner, Lucy-Richardson, Blind Deconvolution) to remove motion blur. I believe there must be something, because mobile robot need real-time calculations from their camera inputs and motion blur is a common problem when robot or the target object is moving.

I'm using Python 2.7 with Opencv 3 and ROS Kinetic.

Otherwise let me know how many fps are sufficient to observe a human who can walk, run, fall from a distance of 10-20 ft. I can't go and buy a 400-1000 fps camera just to check the output.

Below are the images of some sample markers.

Actual Markers: Sample Markers

Blurred Image when Moving Blurred Markers


1 Answer 1


You don't need more frames per second, you need a shorter exposure time.

  • $\begingroup$ It appears that I'm unable to change exposure. I'm using a linux (Ubuntu) system with a Logitech C310 webcam. I have tried disabling auto_exposure using v4l2_ctl. v4l2-ctl -d /dev/video0 -c exposure_auto=1 I tried to set exposure in my python program using opencv's object VideoCapture VideoCapture.set(cv2.CAP_PROP_EXPOSURE,0.01) but nothing changed. $\endgroup$ Aug 16, 2017 at 11:39
  • 1
    $\begingroup$ You probably need a new camera. $\endgroup$
    – holmeski
    Aug 16, 2017 at 12:49
  • $\begingroup$ OK Now I tried using v4l2_ctl from command line to set exposure and it worked perfectly. But I'm unable to set exposure using OpenCV. $\endgroup$ Aug 16, 2017 at 12:56
  • $\begingroup$ Hmmm. I haven't worked with this camera. Glad to here it worked! $\endgroup$
    – holmeski
    Aug 16, 2017 at 13:10
  • $\begingroup$ @MuhammadAbdullah - If this answer gave you the solution you needed, please accept it by clicking the check mark to the left of the answer. This marks it as closed and helps future visitors find answers faster. $\endgroup$
    – Chuck
    Aug 16, 2017 at 17:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.