Using the optical flow for motion detection in Supernova remnants in astronomy


This topic is about a recent experimentation I’ve tried on using the openCV optical flow implementation to measure the velocity and expansion of the blast wave in an exploded star (known as supernova remnant) using X-ray images.
We have several images separated by several years and you can see the blast wave of the explosion moving outwards (by ~3-5 pixels) in 15 yrs.
You can see a timelapse here: Chandra X-ray Time-lapse of Tycho's Supernova Remnant - YouTube
It’s clearly not as obvious as a car moving in the street though …

We managed to apply the LK algorithm following the openCV tutorial.

The Goodfeatures to track found in the images are show below:

It is tracking corners found inside the object.
However we are more interested in measuring the motion of the external ring structure (the blast wave expanding at ~5000 km/s !) as highlighted in red in the above picture.
I understand that this might be considered as a an edge and not a corner and that is why it was not selected in the Goodfeatures step.
Do you know if there is a way to tell the algorithm to focus on the outer ring feature ?
(i.e. selecting the edges in the R scoring function) as shown below:

but this might not be very stable in the tracking step (but our features are clearly delimited so it might work).

If not possible with LK optical flow, do you know another tool that would be more suited to follow-up edges expansion ?

thanks a lot for helping understanding how star explode ! :star2: :boom: :telescope:

1 Like

sparse LK will work with any points.

GFTT is just one way to generate points that are likely to be “stable”. points on edges tend to slip or even fly off (thanks, numerics) because the image content doesn’t “hold” them along the edge.

generate your points manually, or any other way.

or calculate dense optical flow. I’d recommend the “DIS” algorithm.