选取图片区域对图片进行操作
import numpy as npimport cv2 as cvfrom matplotlib import pyplot as plot# 读取图片彩色读取img = cv.imread("images/ly.jpg", 1)px = img[100, 100] # img[100,100]表示行和列对于矩阵来说 px获取的值是这个矩阵100 行和100列的像素值# 返回的是一个 蓝色 绿色 和红色值组成的数组 如果是灰度那么返回相对于的灰度# 因为matplotlib显示的时候是RGB opencv是BGR做一步转换b, g, r = cv.split(img)img = cv.merge([r, g, b])# img.shape可以获取图像的行数和列数如果是彩色 那么后面包含3 如果是灰色的那么 仅仅返回行数和列数print(img.shape)# print(img.dtype)获取像素的单位#img.itemset修改单个像素值# img.itemset((10, 10, 2), 100)# 选中某一块区域 img[y,x]900-200=700 高度700 500-100=400 宽度为400ball = img[200:900, 100:500]img[200:900, 200:600] = ball # 起始的点位x=600 y=900 也就是宽度为400 高度为700plot.imshow(img)plot.show()
