Python-OpenCV Найти прямоугольник и обрезать изображение - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь сделать игрового бота, и в процессе нужно найти миникарту и обрезать ее, чтобы я мог выяснить, где находится игрок.

Мне удалось сделать снимок экрана с изображением, примерно на том месте, где находится миникарта.Однако я не могу получить из него точную ограничивающую рамку миникарты.

Мое оригинальное серое изображение:

Размытое и обмолоченное изображение: enter image description here

Что я хотел сделать: enter image description here

Поскольку я очень плохо знаком с OpenCV и обработкой изображений, я не уверен, чтошаги, которые мне нужно предпринять, чтобы выполнить эту задачу.

Какие шаги мне следует предпринять, чтобы найти ограничивающую рамку / координаты миникарты?

РЕДАКТИРОВАТЬ: Видно, я был неясен, когда имел в виду "знал" зналточная ограничительная рамка ".Мне нужно точно извлечь область миникарты из изображений.У меня нет никакой информации о координатах, кроме верхнего левого края миникарты, и размер миникарты меняется в зависимости от размера карты, поэтому я не могу жестко закодировать координаты.

1 Ответ

0 голосов
/ 11 сентября 2018

Если вам известны точные координаты интересующей области и если эта область постоянно закреплена в одном и том же месте, вы можете использовать любую из функций рисования с известными координатами x, y;h, w размеры.

void cv::rectangle  (   InputOutputArray    img,
Point   pt1,
Point   pt2,
const Scalar &  color,
int     thickness = 1,
int     lineType = LINE_8,
int     shift = 0 
)

Для нахождения динамического w, h: Начиная с известных верхних левых координат, анализируем пиксель за пикселем изображения и сравниваем цвет считанного пикселя сизвестный, сначала по осям x, восходящим, пока не найдете пиксель, который не соответствует.Во-вторых, по оси y по убыванию, и так далее, вы можете найти поля карты.

Пример значения пикселя в координатах 100 100 (python):

img = cv2.imread('myImage.png')

px = img[100,100]
print px

Для анализа читайтеэта статья о быстрых, оптимизированных «для» пиксельных циклах с OpenCV и Python

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