2024-05-28 19:12:38 发布
网友
我是opencv的新手,这里有一个问题,什么是python函数,它的作用与cpp中的cv::clone()相同? 我只是想通过
rectImg = img[10:20, 10:20]
但是当我在上面画一条线的时候,我发现这条线同时出现在img和rectImage上,所以,我怎样才能做到这一点呢?
您可以简单地使用Python标准库。对原始图像进行浅层复制,如下所示:
import copy original_img = cv2.imread("foo.jpg") clone_img = copy.copy(original_img)
如果使用cv2,正确的方法是在Numpy中使用.copy()方法。它将创建所需数组的副本。否则它将只生成该对象的视图。
cv2
.copy()
例如:
In [1]: import numpy as np In [2]: x = np.arange(10*10).reshape((10,10)) In [4]: y = x[3:7,3:7].copy() In [6]: y[2,2] = 1000 In [8]: 1000 in x Out[8]: False # see, 1000 in y doesn't change values in x, parent array.
第一个答案是正确的,但是你说你使用的是cv2,它天生就使用numpy数组。所以,要制作一个完全不同的副本,比如说“myImage”:
newImage = myImage.copy()
以上就足够了。不需要导入numpy。
您可以简单地使用Python标准库。对原始图像进行浅层复制,如下所示:
如果使用
cv2
,正确的方法是在Numpy中使用.copy()
方法。它将创建所需数组的副本。否则它将只生成该对象的视图。例如:
第一个答案是正确的,但是你说你使用的是cv2,它天生就使用numpy数组。所以,要制作一个完全不同的副本,比如说“myImage”:
以上就足够了。不需要导入numpy。
相关问题 更多 >
编程相关推荐