Python_使用openCV对图像数据进行读取&&处理
程序员文章站
2022-05-18 17:22:57
...
OpenCV是一个跨平台的计算机视觉库。其发展非常早,拥有众多的计算机视觉、数字图像处理和机器视觉等功能,OpenCV是今天介绍得所有图像库中最全面也最强大的库,学习成本也相对要高很多。
使用cv2.imread读取图片将其储存为一个BGR像素值矩阵。
接下来我们看看相关的代码操作:
import cv2 # 导入OpenCV库
import numpy as np
img = cv2.imread('xxx.jpg', 0) # 读取图片:灰度模式
img = cv2.imread('xxx.jpg', -1) # 读取图片:BGRA模式(BGR+Alpha通道)
img = cv2.imread('xxx.jpg', 1) # 读取图片:BGR模式
img = cv2.imread('xxx.jpg') # 读取图片:第二参数默认为1,BGR模式
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 将颜色通道从BGR转为RGB
if img == None: # 读取图片失败
print('image failed to load')
cv2.imshow('src', img) # 图片源src为img
print(img.shape) # 输出图片(高度h,宽度w,通道c)
print(img.size) # 像素总数目
print(img.dtype) # 输出图片类型,uint8为[0-255]
print(img) # 输出所有像素的RGB值
cv2.waitKey() # 按键关闭窗口
# waitKey(delay)函数的功能是不断刷新图像,频率时间为delay,单位为ms,返回值为当前键盘按键值
# waitKey() 是在一个给定的时间内(单位ms)等待用户按键触发; 如果用户没有按下键,则接续等待(循环)
imgL = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 读取img灰度图
cv2.imshow('gray',imgL) # 图片源gray为imgL
cv2.imwrite('imgL.jpg',imgL) # 将imgL储存名为imgL.jpg的图片
img = img.transpose(2,0,1) # 图片矩阵变换为(通道c,高度h,宽度w)
img = np.expand_dims(img, axis=0) # 图片矩阵扩展维度添加在第一维
print(img.shape) # (1,通道c,高度h,宽度w)
print(img[10,10]) # 访问图片img像素[10,10],输出 [0-255 0-255 0-255]
print(imgL[10,10]) # 访问灰色图片img像素[10,10],输出 0-255
img[10,10] = [255,255,255] # 修改图片img像素点[10,10]为[255,255,255]
imgL[10,10] = 255 # 修改灰色图片img像素点[10,10]为255
img[:,:,2] = 0 # 将R通道全部修改为0
roi = img[200:550,100:450,:] # ROI操作,坐标(高度范围,宽度范围,通道范围)
cv2.imshow('roi',roi) # 图片源roi为roi
上一篇: Bootstrap源码解读排版(1)
下一篇: Photoshop制作在线购买图标