Find coordinates of closest points in successive frames

1 vue (au cours des 30 derniers jours)
Sajjad Ahmad Khan
Sajjad Ahmad Khan le 24 Juin 2021
Réponse apportée : Jaynik le 17 Avr 2024
I have a sequence of 10 images (Siemen star). I want to find the coordinates of points which overlap as I proceed in time (going from one frame to other). How to find the closest points that were within some distance of each other or were overlaping with each other as I proceed the frames? Thanks!

Réponses (1)

Jaynik
Jaynik le 17 Avr 2024
Hi,
You can use the opticalFlow object to track motion between two frames. There are several functions to compute optical flow like opticalFlowLK for the Lucas-Kanade method, opticalFlowFarneback for the Farneback method, etc. You can try the method appropriate for your case.
Here is a sample code to estimate the optical flow between two frames:
% Convert the images to grayscale if necessary using rgb2gray
img1 = imread('image1.jpg');
opticFlow = opticalFlowFarneback;
flow = estimateFlow(opticFlow, img1);
for i = 2:10 % For 10 images
img2 = imread(sprintf('image%d.jpg', i));
% Estimate the optical flow between the current and the next frame
flow = estimateFlow(opticFlow, img2);
end
You can analyze the "flow.Magnitude" and "flow.Orientation" fields to find the overlapping points or points that are within a certain distance of their previous positions.
Please refer the following documentation links to read more about each functions:

Catégories

En savoir plus sur Tracking and Motion Estimation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by