簡體   English   中英

我可以取消裁剪 numpy 數組/OpenCV 圖像嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM