我可以打开numpy数组/OpenCV图像吗



在C++中,当我裁剪图像时,OpenCV只是保留了对原始图像的引用,并添加了一些关于裁剪的信息。(如果我没记错的话。(因此,有人可以";取消折叠";裁剪并获取原始图像。

是否可以使用Python cv2接口来";取消折叠";图像?

在代码方面,我希望实现以下内容:

cropped = image[y: y+h, x: x+w]
uncropped = mat_uncrop(cropped)

其中uncropped等于image

我相信您可以通过访问切片的.base属性来实现这一点。

A = np.eye(10)
B = A[2:8, 2:8]
B[2,2] = 999
assert B.base is A
print(B.flags)
print(B.base)
C_CONTIGUOUS : False
F_CONTIGUOUS : False
OWNDATA : False
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
[[  1.   0.   0.   0.   0.   0.   0.   0.   0.   0.]
[  0.   1.   0.   0.   0.   0.   0.   0.   0.   0.]
[  0.   0.   1.   0.   0.   0.   0.   0.   0.   0.]
[  0.   0.   0.   1.   0.   0.   0.   0.   0.   0.]
[  0.   0.   0.   0. 999.   0.   0.   0.   0.   0.]
[  0.   0.   0.   0.   0.   1.   0.   0.   0.   0.]
[  0.   0.   0.   0.   0.   0.   1.   0.   0.   0.]
[  0.   0.   0.   0.   0.   0.   0.   1.   0.   0.]
[  0.   0.   0.   0.   0.   0.   0.   0.   1.   0.]
[  0.   0.   0.   0.   0.   0.   0.   0.   0.   1.]]

最新更新