一、安装opencv-python
opencv-python是包含了基本使用函数的opencv库,而opencv-contrib-python则是包含了其他一些图像处理算法函数的opencv扩展库。
同时按下win和R键,并输入打开cmd,使用如下pip命令安装opencv-python。
1、安装opencv-python
pip install opencv-python
2、安装opencv-contrib-python
要注意的是安装opencv-contrib-python需要与opencv-python版本保持一致,可在下述命令后面加上 ==版本号 ,以此保持版本一致。查看opencv-python版本可使用pip list的方法,下文第3步会介绍到。
pip install opencv-contrib-python
指定安装版本:
pip install opencv-contrib-python==对应的版本号
3、查看版本号并确认安装成功
使用pip list可查询到安装的python库,会携带其对应的版本号。
pip list
如下图所示。
确认是否安装成功:
1、在cmd中输入python
2、import cv2
如下图所示,导入cv库后不会报错即表示opencv-python安装成功。
二、获取并显示图像
1、对应函数解析
1、img = cv2.imread('xx.jpg', 0) #导入图像(图像路径,读取图像类型)
'''
图像类型如下所示:
cv2.IMREAD_COLOR / 1 # 彩色图
cv2.IMREAD_GRAYSCALE / 0 # 灰度图
'''
2、video = cv2.VideoCapture(0)
#选择视频或摄像头:()中 0 表示第一个摄像头,也可写入视频路径
3、ret, img = video.read()
# 获取摄像头或视频的一帧,ret判断获取是否成功,成功则为True;img为获取的图像
4、cv2.imshow('img', img) #显示图像(显示名称,显示对象)
5、cv2.waitKey(1) #等待时间ms(可实现键操作,下文将会介绍)
6、cv2.imwrite('xx.jpg', img) #保存(保存文件名,保存对象)
7、cv2.VideoCapture.isOpened() #判断摄像头能否打开,第3个函数的ret也可实现此功能
以下是我平时需要用到opencv时的初始代码框架中的一部分,即获取图像,显示图像,判断摄像头是否开启等基本操作。分为使用摄像头或视频获取图像和单纯导入图像。
2、摄像头或视频获取图像
import cv2 # 导入opencv库
if __name__ == '__main__':
video = cv2.VideoCapture(0) # 选择摄像头0、1... 或 选择视频路径
while True:
ret, img = video.read()
# 获取摄像头或视频的一帧,ret判断获取是否成功,成功则为True;img为获取的图像
if ret:
cv2.imshow("img", img) # 显示图像(显示名称,显示对象)
cv2.waitKey(1) # 等待时间
else:
# print("摄像头未打开。")
pass # 图像获取失败,可能未接入摄像头
3、直接导入图像
import cv2 # 导入opencv库
if __name__ == '__main__':
while True:
img_RGB = cv2.imread('img/0.jpg', 1) # 获取路径img/0.jpg的图像,图像类型为RGB图像
img_g = cv2.imread('img/0.jpg', 0) # 获取路径img/0.jpg的图像,图像类型为灰度图
'''
# 此处为改变图像大小,在此处使用是为了演示方便,为图像预处理阶段,与获取图像无关
img_RGB = cv2.resize(img_RGB, (0, 0), fx=0.5, fy=0.5) # 改变图像shape
img_g = cv2.resize(img_g, (0, 0), fx=0.5, fy=0.5) # 改变图像shape
'''
cv2.imshow("RGB", img_RGB) # 显示彩图
cv2.imshow("gray", img_g) # 显示灰度图
cv2.waitKey(1) # 等待时间
效果如下图所示:
4、cv2.waitKey()
关于这个opencv的等待函数,其括号内为等待时间,单位为ms,可获取其返回值并进行其他操作。
(1)、用在退出循环上
如下所示:
key = cv2.waitKey(1)
if key & 0xff == 27: # 27为ESC,可查看ASCII表
break
(2)、用在图像采集保存上
如下所示:
key = cv2.waitKey(1)
if key & 0xff == 105: # 105为字母i,可查看ASCII表
cv2.imwrite("0.jpg", img) # 保存图像
number += 1
或:
key = cv2.waitKey(1)
if key == ord('i'): # 判断字母i
cv2.imwrite("0.jpg", img) # 保存图像
number += 1
关于上述的ASCII码,进入此链接并下拉后可看到ASCII表,对应表上的十进制数即可查询:ASCII表链接
图像采集例程如下:文章来源:https://www.toymoban.com/news/detail-446188.html
import cv2 # 导入opencv库
number = 0
if __name__ == '__main__':
video = cv2.VideoCapture(0) # 选择摄像头0、1... 或 选择视频路径
while True:
ret, img = video.read()
# 获取摄像头或视频的一帧,ret判断获取是否成功,成功则为True;img为获取的图像
if ret:
cv2.imshow("img", img) # 显示图像(显示名称,显示对象)
key = cv2.waitKey(1) # 等待时间,输入'0'表示任意键终止
if key & 0xff == 105: # 105为字母i,可查看ASCII表
cv2.imwrite("data/%d.jpg" % number, img)
# 保存图像至data文件夹,名字按先后采集顺序从0开始递增
number += 1
else:
# print("摄像头未打开。")
pass # 图像获取失败,可能未接入摄像头
本人是一名学生,目前正在学习中,本篇文章也算是我的学习笔记,如有错误的话还请指正。文章来源地址https://www.toymoban.com/news/detail-446188.html
到了这里,关于OpenCV python(一):安装 && 获取、显示、保存图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!