示例:

# -*- coding: utf-8 -*-
# Data: 2023/7/2

import cv2


img1 = cv2.imread("./1-1.jpg",cv2.IMREAD_UNCHANGED)

# 提取图片感兴趣区域(提取150行到400行,400列到750列作为感兴趣的区域)
face = img1[150:400,400:750]

# 改变感兴趣区域的像素值
face[0:100,0:100] = (255,0,0)


cv2.imshow("face",face)
cv2.imshow("img",img1)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行效果:
图片alt
图片alt

从上面可以看出,修改了提取的感兴趣区域的值,结果原图值发生了改变,说明发生了数据的浅拷贝。如果要进行深拷贝,可以使用

# -*- coding: utf-8 -*-
# Data: 2023/7/2

import cv2
import numpy as np


img1 = cv2.imread("./1-1.jpg",cv2.IMREAD_UNCHANGED)

# 提取图片感兴趣区域
face = img1[150:400,400:750]
face_copy = face.copy()

# 改变感兴趣区域的像素值
face_copy[0:100,0:100] = (255,0,0)

# 将感兴趣区域放到原图中
img1[0:250,0:350] = face_copy

# 将感兴趣区域放到另一个图片中
img2 = cv2.imread("./1-2.jpg",cv2.IMREAD_UNCHANGED)
img2[0:250,0:350] = face_copy

cv2.imshow("face",face_copy)
cv2.imshow("img",img1)
cv2.imshow("img2",img2)
cv2.waitKey(0)
cv2.destroyAllWindows()

运行效果如下:
图片alt
图片alt