Image motion frequency estimation from scanned image

Hello all. I am trying to extract the frequency (or frequecies) of motion present in a scanned image. Consider: an object is excited with input motion at a set frequency. An image of this moving object is then taken by line scanning it (similar to how a photocopier would scan paper). The result is a "wavy" image of the object, with the frequency of the waves matching the frequency of the input motion. As an example, if the object were just a sheet of graphpaper being moved while it was scanned, the resulting image would be something like what is shown in the image below. If the speed of the scan is known, I am trying to determine the frequency of that wave. I appreciate any guidance!

3 Comments

Another example of a "wavy image". Trying to find the frequency of the motion.
Potential answer: the excitation is 0, with the photograph just happening to look that way.
Thanks Walter. Even if that were the case, I am still interested in determining the freqency of that waviness.

Sign in to comment.

 Accepted Answer

It looks like you can determine the waviness wavelength by examining the dark blobs at the last line of the image.
Otherwise, I'd just use imdistline to get the distance over, say, 20 ripples. Then divide the distance by 20.
There is no robust, automatic way unless you know something about the image. For example if the image was all uniform gray, the ripples would not even be visible or detectable.

3 Comments

Image Analyst, thanks for the input. It wouldn't have to be overly robust, as it'll be used for one-off cases that I know are not uniform gray. But I do understand that there may not be an automatic way to do this... I will probably just come up with a way to simplify measuing the peak of each ripple manually.
I may be able to automate something with the knowledge that the whole column of pixels will have a uniform up/down shift (due to the nature of the linear scan), and look for an average trend of the profile/peaks up or down from column-to-column. Thanks.
If it were me, I'd design a GUI with a listbox, a button to select the folder, an axes to hold the clicked-on image, and two sliders. One to give the period in pixels in the x direction, and another to give the magnitude of the pixels in the y directions. Then each time you click on a slider, just move the columns up or down and redisplay the image. Then have a save button that will save the corrected image. That way you can try lots of combinations to "eyeball" the correction and see which parameters are best. Can you do that?
Thanks! Good suggestion. Yes, I can put something together like that. Appreciate the help.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 15 Dec 2023

Commented:

on 18 Dec 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!