2016-10-18 4 views
2

Я пытаюсь нарисовать стрелку поверх изображения в MATLAB, между двумя пикселями: [x0, y0] и [x1, y1].Рисуем стрелку в верхней части изображения - MATLAB

Я попытался использовать функцию аннотации. Проблема в том, что функция принимает в качестве входных значений x, y, которые представляют собой координаты на рисунке, а не на самом изображении.

Кто-нибудь знает, как я могу нарисовать стрелку между двумя пикселями в изображении?

Пример

imshow(imread('peppers.png'));hold on; 

Я хотел бы, чтобы создать синюю стрелку от пикселя (1,1) до пикселя (200,200), поэтому она должна выглядеть примерно так (только в синий вместо черного) :

enter image description here

Спасибо!

+0

ВИДЕТЬ 'coordinate2normalized' вспомогательные функции из [этот ответ] (http://stackoverflow.com/questions/33852712/add -rrows-in-phase-space-portrait-matlab/33899451 # 33899451) или [one] (https://www.mathworks.com/matlabcentral/fileexchange/54254-coord2norm) или [больше] (https: // www .mathworks.com/matlabcentral/fileexchange/10656-data-space-to-figure-units-conversion) из [множества опций в файловом обмене MATLAB] (https://www.mathworks.com/matlabcentral/fileexchange/?search_submit = файл Обмен & запрос = нормализует + аннотации & Термин = нормализует + аннотация). – excaza

ответ

3

вы могли бы просто использовать quiver -функции:

figure; 
imshow(imread('peppers.png'));hold on; 
quiver(0,0,200,200,0) 

enter image description here

+0

Спасибо! есть ли способ увеличить размер головы? , когда стрелка короткая (например, от (0,0) до (5,5)) голова слишком мала, чтобы ее можно было видеть – drorco

+1

@Ibezito 'колчан (0,0,200,200,0, 'MaxHeadSize', 10)' –

+0

У вас есть много вариантов [здесь] (https://se.mathworks.com/help/matlab/ref/quiverseries-properties.html). –

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