Как определить точку пересечения двух линий, образованных из облака точек - PullRequest
2 голосов
/ 06 декабря 2011

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

Я провел маскирование, чтобы просмотреть только интересующую меня область, а также обнаружил угол, чтобы получить точки, разделяющие квадранты, с помощью набора инструментов MATLAB для компьютерного зрения.функции.как enter image description here.

Теперь, как мне получить центральную точку?

1) Если я хочу подогнать кривую между точками и найти точку пересечения, как провести различие между точками, образующими две линии?

2) Есть ли другой простой способ отследитьцентральная точка?

Обратите внимание, что диск вращается, и в каждом кадре создается новый набор углов и ребер.как,

enter image description here

Ответы [ 3 ]

1 голос
/ 08 декабря 2011

У вас очень хороший уголок в центре. Попробуйте Harris Corner Detector и наслаждайтесь точностью до субпикселя;) http://en.wikipedia.org/wiki/Corner_detection

У меня нет ссылки на Matlab, но вы можете прочитать о Харрисе в документации OpenCV. http://opencv.willowgarage.com/documentation/cpp/imgproc_feature_detection.html?#cornerHarris http://opencv.willowgarage.com/documentation/cpp/imgproc_feature_detection.html?#cornerSubPix

0 голосов
/ 18 февраля 2012

используйте следующий код для точного определения центра для обоих изображений: -

imgray=rgb2gray(image);
threshold=graythresh(imgray);
bw=im2bw(imgray,threshold);
se3 = strel('disk',2); %you can try with value 1,3 for better accuracy
bw1 = imerode(bw,SE);
[B,L] = bwboundaries(bw1,'noholes');
stats = regionprops(L,'Centroid');
for k=1:2
centroid = stats(k).Centroid;
x = stats(k).Centroid(1); %acquire X position of the center mass 
y = stats(k).Centroid(2); %acquire Y position of the center mass

x_axis(k,1)= x;
y_axis(k,1)= y;
end

x_axis (1,1) - центр x для первого объекта, x_axis (2,1) - этох центр для второго объекта ...

0 голосов
/ 06 декабря 2011

Вы можете найти круг (требуется только окружность) с равным количеством черного / белого, который сохраняется со временем, если центр диска остается достаточно неподвижным.

...