How can I isolate a faint gradient in an image using matlab?

9 views (last 30 days)
I am trying to trace the border of a shockwave in a series of images as it advances in time.
For reference watch the video below at the 2:30 mark.
There is a thin almost translucent shock that moves faster than the debris. I have been converting the image to black and white so that I can use edge finding algorithms in matlab, the only trouble that I have is that I can't seem to isolate the shockwave. I have been using the graythresh() function, but it doesn't capture the wave. It captures the more obvious dirt, smoke, and debris instead of the more subtle wave.
I'm thinking that some sort of analysis of the gradient might be effective. Assuming a relatively static background would it be possible to examine two frames and detect the changes in them to isolate the shockwave?
I'm relatively new to image processing, so I'm open to any suggestions.
Thanks, Chris N.
Here are two sample images for reference. They are screenshots of the video separated by a few seconds. The motion and location of the wave becomes apparent when comparing two images. Otherwise it is hard to find the shock location. That is why I feel that some sort of comparison between two frames may work.

Accepted Answer

Image Analyst
Image Analyst on 8 Jan 2014
Edited: Image Analyst on 8 Jan 2014
What if you simply subtract the two frames?
diffImage = abs(double(frame1) - double(frame2));
imshow(diffImage);
  16 Comments
Sampada J
Sampada J on 17 Nov 2021
@Chris, @Image Analyst I'm Having the same problem. Even after amplifying the subtraction results, the exact boundary is not visible and visible only as distant dots (would seem noise to a layman). Would be great if you guys can share the code.
Image Analyst
Image Analyst on 17 Nov 2021
Yes, because not much changed between those two frames. You might try a larger time difference between frames if you want to see a bigger difference.

Sign in to comment.

More Answers (1)

Rui Yang
Rui Yang on 23 May 2017
Hello Chris, I have encountered a similar problem. I have read your discussion, but can not understand. Could I have a copy of your code and pictures? My email is hypershan92@Gmail.com.
Thank you very much for your sharing.

Community Treasure Hunt

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

Start Hunting!