2016-09-19 8 views
0

Я следующая задача в Matlab: У меня есть 2D замкнутого контура (набор 2D координаты точек), представляющий объект, как на этой картинке: image representing 2D contourПреобразовать контур в ломаную линию в изображении Matlab

Я хочу чтобы преобразовать его в ломаный контур линии: dot-line-space-dot-line-space и т. д.

Есть ли способ решить эту проблему в Matlab? Спасибо очень очень

ответ

4

Вы можете сначала заполнить объект с помощью imfill, а затем проследить его с помощью bwboundaries и построить результат, используя plot с a given line style.

% Load the image in and convert to binary 
img = imread('http://i.stack.imgur.com/G4NLh.png'); 
img = img(:,:,1) > 170; 

% Fill in the middle hole and compute the boundary 
boundary = bwboundaries(imfill(img, 'holes')); 

% Plot the boundary on a black background 
plot(boundary{1}(:,2), boundary{1}(:,1), ... 
      'LineStyle', '-.', ... 
      'Marker', 'none') 

axis image 
axis ij 

enter image description here

Update

Ох ... у вас уже есть х/у точек. Ну что ж! Просто используйте LineStyle недвижимость участка, чтобы выполнить то, что вы хотите.

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

  • Нет связанных вопросов^_^