赞
踩
图像复制分成两种,第一种假复制,从原图片选择一部分图片拿出来观察,此时新生成的图片和原图实际上是同一张图片,即浅拷贝
将图片的一部分复制下来,放到新的内存中,即两张完全独立的图片是深拷贝
对复制后的图片操作,可以看出深浅拷贝的区别
# 导入cv2和numpy库 import cv2 import numpy as np # 创建一个名为'img'的窗口,并设置窗口大小 cv2.namedWindow('img', cv2.WINDOW_NORMAL) cv2.resizeWindow('img', 1200, 480) # 使用cv2.imread()函数读取图片,并将其存储在img变量中 img = cv2.imread('./china.jpg') # 使用view()方法进行浅拷贝,创建一个与img共享相同数据的新数组img2 img2 = img.view() # 使用copy()方法进行深拷贝,创建一个完全独立于img的新数组img3 img3 = img.copy() # 将img数组中从(10,10)到(100,100)的区域的值设置为蓝色(0,0,255) img[10:100, 10:100] = [0, 0, 255] # 使用hstack()函数将img, img2, img3三个数组水平堆叠起来,并显示在名为'img'的窗口中 cv2.imshow('img', np.hstack((img, img2, img3))) # 等待键盘事件,如果无事件则一直等待 cv2.waitKey(0) # 销毁所有OpenCV创建的窗口 cv2.destroyAllWindows()
CV创建的窗口
cv2.destroyAllWindows()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。