2015-03-22 2 views
1

У меня есть видео движущегося шланга в эксперименте, и мне нужно определить определенные точки в этом шланге и рассчитать амплитуду их движений, я использую код ниже, и я я могу извлечь нужную точку с помощью 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); 

ответ

0
  • Если вы хотите найти ограничивающий прямоугольник, который охватывает все пять пунктов, которые вы выбрали: stats1 теперь содержит (x, y) координаты выбранных 5 баллов. Найдите min и max для координат x и y. min значения x и y дают вам начальную точку прямоугольника. Ширина и высота ограничивающей рамки теперь являются разностью max и min в направлениях y и x.

  • Если вы хотите извлечь часть исходного изображения в ограничительную рамку: просто скопируйте эту часть в другую переменную, как хотите. Рассмотрим следующий пример.

    img2 = img1 (у: ч, х: ш, :)

Здесь, х и у х и у координаты верхнего левого угла прямоугольника. w и h - ширина и высота ограничивающей рамки.

+0

Мне нужно установить отдельный ограничивающий прямоугольник вокруг каждой точки, чтобы отслеживать их через видеокадры. –

+0

Вы можете получить доступ к (x, y) координатам каждой точки. Тогда, например, допустим, что ширина и высота ограничивающего прямоугольника вам нужны w и h. Затем вы можете получить доступ к содержимому вокруг этой точки с первого изображения, как img2 = img1 (y-h/2: y + h/2, x-w/2: x + w/2). –

Смежные вопросы