Python opencv

这篇博客详细介绍了如何使用OpenCV库进行视频处理,包括读取摄像头视频、帧率检测、颜色空间转换、在图像上添加文本、保存视频、显示图像以及应用伪彩色等操作。通过这些步骤,开发者可以实现基本的视频分析和处理功能。
摘要由CSDN通过智能技术生成

cap = cv2.VideoCapture(0)
#参数0表示默认为笔记本的内置第一个摄像头,如果需要读取已有的视频则参数改为视频所在路径路径

cap.isOpened()
#判断视频对象是否成功读取,成功读取视频对象返回True

ref, frame = cap.read()
#按帧读取视频;返回值ref是布尔型,正确读取则返回True,读取失败或读取视频结尾则会返回False

key = cv2.waitKey(1)
#等待键盘输入,参数1表示延时1ms切换到下一帧,参数为0表示显示当前帧,相当于暂停

fourcc = cv2.VideoWriter_fourcc()
#创建视频流写入对象,VideoWriter_fourcc为视频编解码器
#保存格式
#cv2.VideoWriter_fourcc(‘M’, ‘P’, ‘4’, ‘V’),MPEG-4编码,后缀为.mp4
#cv2.VideoWriter_fourcc(‘X’,‘2’,‘6’,‘4’),MPEG-4编码,后缀为.mp4
#cv2.VideoWriter_fourcc(‘I’, ‘4’, ‘2’, ‘0’),YUV编码类型,文件名后缀为.avi
#cv2.VideoWriter_fourcc(‘P’, ‘I’, ‘M’, ‘I’),MPEG-1编码类型,后缀为.avi
#cv2.VideoWriter_fourcc(‘X’, ‘V’, ‘I’, ‘D’),MPEG-4编码类型,后缀为.avi
#cv2.VideoWriter_fourcc(‘T’, ‘H’, ‘E’, ‘O’),Ogg Vorbis,后缀为.ogv
#cv2.VideoWriter_fourcc(‘F’, ‘L’, ‘V’, ‘1’),Flash视频,后缀为.flv

out = cv2.VideoWriter(filename, fourcc, fps, frameSize[, isColor]) # 写视频
#第一个参数是要保存的文件的路径
#fourcc 指定编码器
#fps 要保存的视频的帧率
#frameSize 要保存的文件的画面尺寸
#isColor 指示是黑白画面还是彩色的画面

cv2.cvtColor(src, code[, dst[, dstCn]])
#将图像从一种颜色空间转换为另一种颜色空间

#src:它是要更改其色彩空间的图像。
#code:它是色彩空间转换代码。
#dst:它是与src图像大小和深度相同的输出图像,它是一个可选参数。
#dstCn:它是目标图像中的频道数。如果参数为0,则通道数自动从src和代码得出,它是一个可选参数

frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
#将frame从BGR转为RGB
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
#将frame从RGB转为BGR

cv2.putText()方法用于在任何图像上绘制文本字符串。
frame = cv2.putText(frame, “fps= %.2f” % fps, (0, 40), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
#在图像中写入frame帧数

cv2.imwrite(filename, image)
#将图像保存到存储设备。根据指定的格式将图像保存在当前工作目录中
#filename:代表文件名的字符串。文件名必须包含图像格式,例如.jpg,.png
#image:就是要保存的图像

cv2.imshow()
#在窗口中显示图像。该窗口和图像的原始大小自适应(自动调整到原始尺寸)
cv2.imshow(“video”, frame)
#第一个参数是一个窗口名称(也就是我们对话框的名称),它是一个字符串类型。第二个参数是我们的图像。您可以创建任意数量的窗口,但必须使用不同的窗口名称。

cv2.applyColorMap(src, 8) # 将图片转为伪彩色

image = cv2.applyColorMap(src, 8) # 将图片转为伪彩色
#COLORMAP_AUTUMN = 0,
#COLORMAP_BONE = 1,
#COLORMAP_JET = 2,
#COLORMAP_WINTER = 3,
#COLORMAP_RAINBOW = 4,
#COLORMAP_OCEAN = 5,
#COLORMAP_SUMMER = 6,
#COLORMAP_SPRING = 7,
#COLORMAP_COOL = 8,
#COLORMAP_HSV = 9,
#COLORMAP_PINK = 10,
#COLORMAP_HOT = 11

cv2.destroyAllWindows() # 关闭所有窗口

capture.release()
#release()方法用于释放由调用线程获取的锁,以释放代码的关键部分。 释放锁后,其他一些线程可以获取该锁,等待其轮换使用该锁

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值