Как отобразить точки графика из координат на изображении в фактические координаты?

#matlab #image-processing #digitization

Вопрос:

Я внедряю автоматический дигитайзер с использованием Matlab для извлечения пар значений (x, y) линейного графика. Я определил положение осей и оси y на изображении, указав начало и конец каждой оси на изображении. Я также нашел координаты точек на изображении графика. Теперь, как я могу сопоставить эти значения с реальными значениями, чтобы я мог снова построить график с теми значениями, которые я только что сопоставил?

Вот мое входное изображение: введите описание изображения здесь

Я определил начало и конец оси x,y (красные точки на рисунке ниже) и знаю предельные диапазоны каждой оси. Я определил координаты на изображении точек графика (например, с зеленой точкой на изображении я определил координаты ее (281,70)). Теперь я хочу преобразовать координаты на изображении в фактические координаты, чтобы снова построить график. Какая формула может помочь мне в этом?

введите описание изображения здесь

Ответ №1:

x Координата довольно прямая, вычтите координату точки на координату начала координат

 x = x_on_image - x_origin;
 

Например, x координата зеленой точки на показанном вами графике равна

 x = 281 - 48;
 

Направление оси y изображения инвертировано и отображается в логарифмическом масштабе. Верните его к показателю 10, чтобы восстановить исходное значение, т. е.

 y = 10^(y_origin - y_on_image);
 

Для зеленой точки

 y = 10^(368 - 70);