Matlab: преобразование координат изображения в декартовы координаты

Я новичок в Матлабе. У меня есть изображение (размер mxnx3) с несколькими точками, выбранными человеком на изображении. Например:

p1 = [267,79];

p2 = [96,372];

Эти точки являются координатами изображения с (1,1) в левом верхнем углу. Я пытаюсь преобразовать это в декартовы координаты с (0,0) в левом нижнем углу. Как я могу это сделать? Заранее спасибо!


person user3006887    schedule 19.11.2013    source источник


Ответы (2)


Если вам нужно напрямую перевести свои координаты в код, вы можете сделать простую анонимную функцию:

img2cart = @(p) [p(1), img.size(2) - p(2)];
q1 = img2cart(p1);
q2 = img2cart(p2);
person paddy    schedule 19.11.2013
comment
Извините, если это глупый вопрос. Я новичок! Я все еще смущен функцией. Не могли бы вы объяснить: [p (1), img.size (2) - p (2)]?? Спасибо! - person user3006887; 19.11.2013
comment
Если я правильно понимаю, это означает, что исходное изображение x используется как декартово x. затем значение y определяется путем вычитания y из количества строк изображения. - person user3006887; 19.11.2013
comment
Да, вы поняли. Кроме того, поскольку img не является параметром функции, его текущее значение на момент создания функции как бы встраивается в функцию. Если вы хотите что-то более общее, определите функцию с @(p,img) т.е. передайте img в качестве второго параметра всякий раз, когда вы ее вызываете. - person paddy; 20.11.2013

Если я правильно понимаю: просто используйте

axis xy

Из axis doc:

AXIS XY переводит MATLAB в режим декартовых осей по умолчанию. Начало системы координат находится в левом нижнем углу. Ось x горизонтальна и нумеруется слева направо. Ось Y является вертикальной и нумеруется снизу вверх.

person Luis Mendo    schedule 19.11.2013
comment
Определенно правильный способ перевернуть оси, но я не понимаю (1,1) -> (0,0) в вопросе. Я предполагаю, что это опечатка? - person chappjc; 19.11.2013
comment
не опечатка! я изучаю эту веб-страницу для двухмерной жесткой регистрации, но я не понимаю код для переключения координат: dominionsw.com/wordpress/?p=111 - person user3006887; 19.11.2013