Найти координаты точки на изображении - PullRequest
1 голос
/ 16 июня 2020

Я создал случайные точки и добавил список этих точек вдвое. Затем я нарисовал график c и сохранил его как изображение.

Я могу провести линию от одной точки к другой с помощью этого кода: cv2.line(img=result,pt1=,pt2=,color=(0,255,255),thickness=5)

I ' есть проблема там. Если я использую plt.show () для graphi c, у меня есть координаты всех точек в списке. Но когда я сохраняю этот график c как изображение и показываю его с помощью cv2 lib, координаты всех точек меняются.

  • Как я могу найти координаты этих точек на изображении?

Graphic

  • Например: Вкл. на этом графике c вы можете увидеть (1,4) точку. Если я сохраню этот график c как изображение, тогда эта точка получит координаты (104, 305) на изображении.
import numpy as np
import random
import matplotlib.pyplot as plt
import cv2

points = np.random.randint(0, 9, size=(18,2))
print(points)
plt.plot(points[:,0], points[:,1], '.',color='k')

plt.savefig("graphic.png",bbox_inches="tight")
result = cv2.imread("graphic.png")


cv2.imshow("Graphic",result)

1 Ответ

0 голосов
/ 16 июня 2020

Я думаю, вы сбиваете с толку.

  • Ваши координаты x, y начинаются с нижнего -левого угла изображения, сначала укажите координату x и предположите ширина изображения 9 пикселей.

  • OpenCV сохраняет точки относительно левого угла top , сначала укажите координату y и относятся к изображению шириной в сотни пикселей.

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