OPENCV基础(图像,视频)

1、图像读取、展示、写入

  1. 使用cv.imread()函数读取图像
  2. 使用函数cv.imshow()在窗口中显示图像
  3. 使用函数cv.imwrite()保存图像
import numpy as np
import cv2 as cv
img = cv.imread('image.png',0)
cv.namedWindow("image",cv.WINDOW_NORMAL)
cv.imshow('image',img)
k = cv.waitKey(0) & 0xFF
if k == 27:         # 等待ESC退出
    cv.destroyAllWindows()
elif k == ord('s'): # 等待关键字,保存和退出
    cv.imwrite('test2.png',img)
    cv.destroyAllWindows()

其中cv.waitKey()是一个键盘绑定函数。其参数是以毫秒为单位的时间。cv.destroyAllWindows()只会破坏我们创建的所有窗口。cv.namedWindow(),则可以调整窗口大小。

2、视频读取、展示、写入

  1. cv.VideoCapture() 读取视频和摄像头
  2. cv.VideoWriter() 保存处理过后的视频或者摄像头视频

读取处理本地视频

import numpy as np
import cv2 as cv
cap = cv.VideoCapture('res.avi')

fps =int(cap.get(cv.CAP_PROP_FPS))
size = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))

# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc('X','V','I','D')
out = cv.VideoWriter('output.avi', fourcc, fps, size)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("Processing Completed ...")
        break
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    cv.imshow('frame', gray)
    out.write(gray)
    if cv.waitKey(fps) & 0xFF == 27:
        break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()

读取海康威视网络摄像头

import numpy as np
import cv2 as cv
cap = cv.VideoCapture("rtsp://admin:摄像头密码@192.168.7.102:554/Streaming/Channels/1")

fps =int(cap.get(cv.CAP_PROP_FPS))
size = (int(cap.get(cv.CAP_PROP_FRAME_WIDTH)),int(cap.get(cv.CAP_PROP_FRAME_HEIGHT)))

# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc('X','V','I','D')
out = cv.VideoWriter('haikang.avi', fourcc, fps, size)
if not cap.isOpened():
    print("Cannot open camera")
    exit()
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        print("Processing completed ...")
        break
    # 写翻转的框架
    cv.imshow('frame', frame)
    out.write(frame)
    if cv.waitKey(fps) & 0xFF == 27:
        break
# 完成工作后释放所有内容
cap.release()
out.release()
cv.destroyAllWindows()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值