Учитывая 4 балла, как обрезать четырехугольник из изображения в pytorch / torchvision? - PullRequest
0 голосов
/ 29 сентября 2018

Проблема довольно проста -

Я хочу вырезать четырехугольник из изображения в pytorch / torchvision.Учитывая, что у меня есть четыре координаты углов этого четырехугольника.

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

Пожалуйста, прокомментируйте, если я пропустил какие-либо соответствующие детали.

1 Ответ

0 голосов
/ 03 октября 2018

Цитирование https://stackoverflow.com/a/30902423/4982729 Я мог бы извлечь патч, используя opencv как -

import numpy as np
import cv2

pts = np.array([[542, 107], [562, 102], [582, 110], [598, 142], [600, 192], [601, 225], [592, 261], [572, 263], [551, 245], [526, 220], [520, 188], [518, 152], [525, 127], [524, 107]], dtype=np.int32)

mask = np.zeros((img.shape[0], img.shape[1]))

cv2.fillConvexPoly(mask, pts, 1)
mask = mask.astype(np.bool)

out = np.zeros_like(img)
out[mask] = img[mask]

enter image description here

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

    outputs = model(images)
    o = outputs.data.cpu().numpy()
    #
    # do your opencv stuff here to o
    #
    o = torch.Tensor(o).to(device)
    outputs = Variable(o, requires_grad=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...