图像处理的复制操作 深浅拷贝
图像复制分成两种,第一种假复制,从原图片选择一部分图片拿出来观察,此时新生成的图片和原图实际上是同一张图片,即浅拷贝
将图片的一部分复制下来,放到新的内存中,即两张完全独立的图片是深拷贝
对复制后的图片操作,可以看出深浅拷贝的区别
# 导入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()