【发布时间】:2016-01-29 22:32:43
【问题描述】:
我一直在尝试加快计算机视觉代码的速度,但遇到了问题。如果我使用 OpenCV 函数,该函数主要将其数据存储在一个 numpy 数组中,则输出是一个确定大小的新数组,通常与源图像大小相同。我知道如果我选择该名称作为源以外的名称,我现在有两个不同的数组,但是如果我将它命名为相同的东西会发生什么?例如:
import numpy as np
import cv2
img = cv2.imread('IMG_1478.jpg', 1)
cv2.imshow('img', img)
dilation = np.ones((10, 10), "uint8")
img = cv2.dilate(img, dilation)
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
如果我仍在创建数组的副本,我假设我有两个不同的数组在不同的内存地址但具有相同的字符串值。那是对的吗?如果是这样,python中有什么方法可以在不删除新图像的情况下删除原始图像?类似于我在 C 中可以做的事情?我知道我可以使用不同的名称,这样我就可以删除原来的,我只是像我一样提出问题,以便我可以更好地理解使用 python 和 opencv 分配内存的方法。
【问题讨论】:
标签: python opencv numpy memory