У меня есть видео движущегося шланга в эксперименте, и мне нужно определить определенные точки в этом шланге и рассчитать амплитуду их движений, я использую код ниже, и я я могу извлечь нужную точку с помощью detectSURFFeatures, функция получает много ненужных точек, поэтому я использую cuba = ref_pts.selectStrongest (5); выбрать лишь пять очков, проблема, я не могу получить функцию, чтобы поставить рамку об этом 5 баллов и получить их значения пикселей через видео, Любезно советы, что можно использовать функции, спасибо :)Как определить определенные движущиеся точки в видео с помощью Matlab
clear;
clc;
% Image aquisition from Video and converting into gray scale
vidIn = VideoReader('ItaS.mp4');
%% Load reference image, and compute surf features
ref_img = read(vidIn, 1);
ref_img_gray = rgb2gray(ref_img);
ref_pts = detectSURFFeatures(ref_img_gray);
[ref_features, ref_validPts] = extractFeatures(ref_img_gray, ref_pts);
figure; imshow(ref_img);
hold on; plot(ref_pts.selectStrongest(5));
cuba = ref_pts.selectStrongest(5);
stats1 = round(cuba.Location);
Мне нужно установить отдельный ограничивающий прямоугольник вокруг каждой точки, чтобы отслеживать их через видеокадры. –
Вы можете получить доступ к (x, y) координатам каждой точки. Тогда, например, допустим, что ширина и высота ограничивающего прямоугольника вам нужны w и h. Затем вы можете получить доступ к содержимому вокруг этой точки с первого изображения, как img2 = img1 (y-h/2: y + h/2, x-w/2: x + w/2). –