在cv2 python中克隆图像

tin*_*tin 42 python opencv

我是opencv的新手,这是一个问题,什么是python函数,它与cpp中的cv :: clone()行为相同?我只想尝试一下

    rectImg = img[10:20, 10:20]
Run Code Online (Sandbox Code Playgroud)

但是当我在它上画一条线时,我发现线条同时出现在img和rectImage上,所以,我怎么能完成这个呢?

Ash*_*hum 59

第一个答案是正确的,但你说你正在使用cv2本身使用numpy数组.所以,要制作一个完全不同的副词"myImage":

newImage = myImage.copy()
Run Code Online (Sandbox Code Playgroud)

以上就足够了.无需导入numpy.


Abi*_*n K 46

如果使用cv2,正确的方法是.copy()在Numpy中使用方法.它将创建所需数组的副本.否则它只会产生该对象的视图.

例如:

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.
Run Code Online (Sandbox Code Playgroud)


小智 7

使用 python 3 和 opencv-python 版本 4.4.0,以下代码应该可以工作:

img_src = cv2.imread('image.png')
img_clone = img_src.copy()
Run Code Online (Sandbox Code Playgroud)