欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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