Python 给定4点,如何从pytorch/torchvision中的图像裁剪四边形?

Python 给定4点,如何从pytorch/torchvision中的图像裁剪四边形?,python,image,pytorch,torchvision,Python,Image,Pytorch,Torchvision,问题很简单- 我想从pytorch/torchvision中的图像中裁剪一个四边形。给定,我有这个四边形的四个角的坐标 请注意,这四个点将一个四边形限制在其内部,该四边形可能是矩形,也可能不是矩形。因此,请不要建议涉及图像切片的答案 如果我遗漏了任何相关细节,请发表评论。引用我可以使用opencv作为- import numpy as np import cv2 pts = np.array([[542, 107], [562, 102], [582, 110], [598, 142], [6

问题很简单-

我想从pytorch/torchvision中的图像中裁剪一个四边形。给定,我有这个四边形的四个角的坐标

请注意,这四个点将一个四边形限制在其内部,该四边形可能是矩形,也可能不是矩形。因此,请不要建议涉及图像切片的答案

如果我遗漏了任何相关细节,请发表评论。

引用我可以使用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]

然后我可以手动将numpy数组转换为torch的变量。即使在我为神经网络绘制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)

你能更新到目前为止你的treid吗?我浏览了他们的文档,但没有结果,要么是我遗漏了什么,要么是我提出的任何问题都没有实现。你没有展示你尝试/发现的任何代码的细节,也没有展示你在这个主题上的研究结果。也许添加它可以让你更清楚地知道你尝试了什么,失败了什么/失败的原因。图片上“四边形”的小图片可能是您文章中图片的有效使用。@PatrickArtner感谢您的评论。一旦“四边形图像”准备好,我会更新它。从一眼torchvision看,我觉得你的情况是这样的:我有一把锤子和一把凿子,但我需要精致的洋葱片-希望你能把它取下来。干杯