Я использую функцию MATLAB ginput , чтобы пометить данные моего изображения для дальнейшей обработки. Вот мой код:
file_name = "test.jpg";
% Read the image
img = imread(file_name);
% Get the image dimension
imgInfo = imfinfo(file_name);
width = imgInfo.Width;
height = imgInfo.Height;
% Using ginput function to label the image
figure(1);
imshow(img);
hold on;
[x, y] = ginput(4); % Manually label 4 points
scatter(x, y, 100, 'ro', 'filled'); % Plot the marked points on img
hold off;
Моя проблема:
Я обнаружил, что выходные данные x
и y
не являются целыми числами, поэтому они не представляют индексы пикселей.
Иногда эти два условия max(x) > width
и max(y) > height
выполняются. Кажется, можно предположить, что 4 точки, которые я пометил с помощью ginput
, находятся за пределами изображения (но на самом деле это не так).
Мне известно, что эта проблема связана с настройкой системы координат изображения, но я все еще не уверен, как преобразовать x
и y
, полученные из функции ginput
, в фактические индексы пикселей?
Спасибо.