Find coordinates of closest points in successive frames

4 次查看(过去 30 天)
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!

回答(1 个)

Jaynik
Jaynik 2024-4-17
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:

类别

Help CenterFile Exchange 中查找有关 Tracking and Motion Estimation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by