导入 import cv2 import numpy as np cv2.namedWindow('image',cv2.WINDOW_NORMAL) cv2.resizeWindow('image',640,480) img=cv2.imread('D:\BaiduNetdiskDownload\practice2.jpg',1) 图像的基础操作 获取、修改像素值;获取图像信息 px=img[100,100]#获取这一个点的三个通道的像素 blue=img[100,100,0]#获取一个像素值 blue=[255,255,255] c=img.shape#长、宽、维度 b=img.size#图像的像素数目 print(img.dtype)#图像的数据类型 图像ROI part=img[200:300,400:500] img[700:800,900:1000]=part cv2.imshow('image',img) 图像拆分与合并通道 #拆分及合并通道 #用split()分离 b,g,r=cv2.split(img) img=cv2.merge(b,g,r) #用矩阵分离,因为split太慢了 b=img[:,:,0] #红色通道都为0 img[:,:,2]=0 为图像扩边(填充) #为图像扩边(填充) #参数:图像;上、下、左、右对应边界的像素数目;想要添加哪种边界 #constant=cv2.copyMakeBorder(img,10,10,10,10,cv2.BORDER_CONSTANT,(255,255,255))#添加有颜色的常数值边界,还需要下一个参数(value) #constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REFLECT)#边界元素的镜像 #constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REFLECT_101)#忽略最边缘的像素,镜像 #constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_REPLICATE)#重复最后一个元素 constant=cv2.copyMakeBorder(img,300,300,300,300,cv2.BORDER_WRAP)#cdefgh|abcdefgh|abcdefg,一样的顺序,上下颠倒 cv2.imshow('image',constant)