2011-12-26 2 views
0

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

x=[1.1 -2.2 3.45] 
y=[0 4.67 -5.6] 

Как использовать matlab hough transform для извлечения строки?

Кажется, что вход должен быть изображением.

+0

Вы должны уточнить свой вопрос. Как данные вашего дальномера имеют отношение к извлечению линий из изображения? – Kavka

+0

Является ли ваш ввод изображением или набором координат, как в вашем примере? –

ответ

2

Вам не нужно преобразование Хафа. Вместо этого, найти лучшую линию с помощью метода наименьших квадратов:

p = polyfit(x,y,1); 
figure(); 
scatter(x,y); 
hold on; 
plot(x,polyval(p,x)); 

Вы можете прочитать о наименьших квадратов здесь:
http://en.wikipedia.org/wiki/Linear_least_squares_%28mathematics%29

+0

Спасибо за ваш ответ , но в моих данных есть несколько строк – ChandlerKC

0

я в настоящее время сталкивается с подобной проблемой. Один из способов, который вы можете использовать для извлечения функций, - RANSAC.
С помощью этого вы можете сопоставить некоторые строки и затем извлечь объекты из пересечений линий. Очевидно, что этот метод лучше с большим набором данных. И с большинством лазерных дальномеров вы получаете несколько сотен очков.

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