[英]Can I uncrop a numpy array/OpenCV image?
在 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.]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.