访问和修改图片像素点的值
px = img[100, 100]
px_blue = img[100, 100, 0]
img[100, 100] = [255, 255, 255]
获取图片的宽、高、通道数等属性
img.shape) # (263, 263, 3) 包含高度、宽度和通道数的元组
img.dtype获取图像数据类型
img.size获取图像总像素数
了解感兴趣区域ROI(截取)
#截取脸部ROI
face = img[100:200, 115:188]
分离和合并图像通道
b, g, r = cv2.split(img)
img = cv2.merge((b, g, r))
# -*-encoding:utf-8-*- import pytesseract from PIL import Image from PIL import ImageFilter from PIL import ImageFont from PIL import ImageDraw import numpy as np from PIL import Image import cv2 def main(): # img = cv2.imread("test001.jpg") #读取图片 # cv2.imshow("1",img) #显示图片 # cv2.waitKey(10000)# 延时10s # image = Image.open("test002.png") # img = image.convert('1') # 转化为灰度图 # img.show() # 获取和修改像素点值 img = cv2.imread("learn.jpg") px = img[100, 100] print(px) # [119 108 201] # 只获取蓝色blue通道的值,对于彩色图,这个值是B,G,R三个值的列表,对于灰度图,只有一个值: px_blue = img[100, 100, 0] print(px_blue) # 119 # 修改像素的值也是同样的方式: img[100, 100] = [255, 255, 255] print(img[100, 100]) # [255 255 255] img.itemset((100, 100, 0), 255)#但这种方式只能B, G, R逐一进行 # ROI:region of interest,感兴趣区域。(就是你想要的区域) face = img[100:200, 115:188] cv2.imshow('face', face) cv2.waitKey(0) # 通道分割与合并 b, g, r = cv2.split(img) img = cv2.merge((b, g, r)) if __name__ == '__main__': main()