2013-06-19 4 views
0

Моя проблема, когда я беру снимок с камеры, подключенной к моему ноутбуку, ось y превращается в обратный, поэтому результат становится неправильным. «http://s4.postimg.org/xcat1kmvh/sdsf.png» ... я исправляю эту проблему, используя эту код "set (gca, 'YDir', 'normal')% начинается в нижней части рисунка " ... но проблема в том, что фото становится инвертирующим, как это "http://s16.postimg.org/ekguxl35x/sdsfss.png" ... как я могу исправить эту проблему ... я просто хочу, чтобы получить XY компонент любых соединений в ПОС ...любая идея о компоненте xy и оси xy

это мой код: я просто взять снимок для калибровки, прежде чем я записывать видео

imagesc (getsnapshot (handles.video));

набор (GCA, «YDir», «нормальный»)% начинается в нижней части рисунка

[x1,y1]=ginput(1) 
[x2,y2]=ginput(1) 
c=sqrt((x1-x2)^2+(y1-y2)^2) 

d=c/40.8; 

ответ

2

Вы можете инвертировать изображение, прежде чем построить его так, чтобы при обратном оси у, изображение попадает в желаемую ориентацию. Вот пример

I = imread('peppers.png'); % sample image included in matlab 
subplot(2,2,1) 
imagesc(I) 
subplot(2,2,2) 
I2 = flipdim(I,1); 
imagesc(I2) 
set(gca,'YDir','normal') 

enter image description here

В коде getsnapshot(handles.video)) возвращает матрицу, и вы можете инвертировать эту матрицу. Что-то вроде этого:

frame = getsnapshot(handles.video)); 
frame2 = flipdim(frame,1); 
imagesc(frame2) 
+0

я не могу сделать вашу идею, потому что я не спасти картину, которую я взял ... я просто взять снимок этого определить 2 точки на дереве, которые появляются в ссылке, я положил «http://s4.postimg.org/xcat1kmvh/sdsf.png». ... тогда у меня будет коэффициент масштабирования для преобразования от пикселя к см ... затем я записываю видео и конвертирую его в рамки, и, наконец, я делаю оцифровку на каждом кадре ... – roger1

+0

Вам не нужно сохранять изображения , просто сохраните его в переменной перед его отображением. Я обновил свой ответ. – Molly

+0

дайте мне эту ошибку >>> Ошибка: Файл: MAFSA.m Линия: 346 Столбец: 35 Несбалансированные или неожиданные скобки или скобки. >> MAFSA Ошибка при использовании flipdim (строка 21) Требуется два аргумента. Ошибка в MAFSA> snapshot_Callback (строка 347) frame2 = flipdim (frame); – roger1

1

Или вы можете обмануть с помощью:

set(gca, 'YTicklabel', {'450' '400' '350' '300' '250' '200' '150' '100' '50'}) 
+0

не работает ... результат неправильный :( – roger1

+0

@ roger1 вы можете играть с количеством элементов в массиве ячеек. –

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