Преобразовать координату изображения в декартовы координаты - PullRequest
0 голосов
/ 27 июня 2019

Дано изображение холста I с 2 точками (a_x, a_y) и (b_x, b_y). Построенная линия на изображении имеет правильную ориентацию. Однако, когда я строю те же координаты (a и b) в декартовой системе координат, я получаю линию с неправильной ориентацией. Я хотел бы преобразовать координаты изображения, чтобы они соответствовали декартовой системе. Спасибо.

% Create image canvas
canvas = zeros(320, 320);
I = uint8(canvas);
imshow(I)
a_x = 122.6544;
a_y = 234.9782;
b_x = 165.9290;
b_y = 126.9200;
hold on 
plot([a_x, b_x], [a_y, b_y] )
% Plot cartesian coordinate system
figure()
plot([a_x, b_x], [a_y, b_y])
xlim([0 320])
ylim([0 320])
axis equal
grid on

1 Ответ

0 голосов
/ 27 июня 2019

Изображения, сгенерированные imshow, имеют координату (0,0) в верхнем левом углу. Нормальные участки в левом нижнем углу.

Это можно увидеть, включив оси изображения:

% Create image canvas
canvas = zeros(320, 320);
I = uint8(canvas);
imshow(I)
a_x = 122.6544;
a_y = 234.9782;
b_x = 165.9290;
b_y = 126.9200;
hold on 
plot([a_x, b_x], [a_y, b_y] );

ax = gca;
ax.Visible = 'on';

Чтобы изменить направление осей графика, используйте свойство YDir axes:

figure()
plot([a_x, b_x], [a_y, b_y])
xlim([0 320])
ylim([0 320])
grid on

ax=gca;
ax.YDir = 'reverse';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...