前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用OpenCV调用摄像头,显示图片,获取视频并保存

使用OpenCV调用摄像头,显示图片,获取视频并保存

作者头像
种花家的奋斗兔
发布2020-11-13 10:35:16
3.6K0
发布2020-11-13 10:35:16
举报

使用OpenCV调用摄像头,显示图片,获取视频并保存

一、图片

显示图片

代码语言:javascript
复制
import cv2    #导入OpenCV包
img = cv2.imread('1.jpg', cv2.IMREAD_COLOR)  
'''
cv2.imread() 读入图像
第二个参数  读入图像的方式
cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。
cv2.IMREAD_GRAYSCALE:以灰度模式读入图像;
cv2.IMREAD_UNCHANGED:读入一幅图像,并且包括图像的 alpha 通道。
'''
cv2.imshow("image", img)#显示图像。窗口会自动调整为图像大小。第一个参数是窗口的名字,其次才是我们的图像。

cv2.waitKey(0)
'''
cv2.waitKey() 是一个键盘绑定函数。需要指出的是它的时间尺度是毫
秒级。函数等待特定的几毫秒,看是否有键盘输入。特定的几毫秒之内,如果
按下任意键,这个函数会返回按键的 ASCII 码值,程序将会继续运行。如果没
有键盘输入,返回值为 -1,如果我们设置这个函数的参数为 0,那它将会无限
期的等待键盘输入。它也可以被用来检测特定键是否被按下,
'''
cv2.destroyAllWindows()
'''cv2.destroyAllWindows() 可以轻易删除任何我们建立的窗口。如果
你想删除特定的窗口可以使用 cv2.destroyWindow(),在括号内输入你想删
除的窗口名。'''

窗口调整

代码语言:javascript
复制
#先创建窗口,再加载图像
cv2.namedWindow('image',cv2.WINDOW_AUTOSIZE)#自动大小窗口,不能手动调整窗口大小
#cv2.namedWindow('image',cv2.WINDOW_NORMAL)  #可以手动调整窗口大小
cv2.imshow('image',img)
cv2.waitKey(0)

键盘控制

代码语言:javascript
复制
img = cv2.imread('1.jpg',0)
cv2.imshow('image',img)
k = cv2.waitKey(0)
if k == 27: # wait for ESC key to exit
    cv2.destroyAllWindows()
elif k == ord('s'): # wait for 's' key to save and exit      ord  返回ASCII码值
    cv2.imwrite('1.png',img)
cv2.destroyAllWindows()

matplotlib控制

代码语言:javascript
复制
from matplotlib import pyplot as plt
img = cv2.imread('1.jpg',0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()

二、视频

调用摄像头

代码语言:javascript
复制
import numpy as np
import cv2


cap=cv2.VideoCapture(0)

while(True):
    #Capture frame by frame
    ret,frame=cap.read()
    #cap.read() 返回一个布尔值( True/False)。如果帧读取的是正确的,
    #就是 True。所以最后你可以通过检查他的返回值来查看视频文件是否已经到
    #了结尾。
    #cap.isOpened(),来检查是否成功初始化了
    gray=cv2.cvtColor(frame,0)
    #gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',gray)
    if cv2.waitKey(1)==ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

保存视频到文件

代码语言:javascript
复制
import numpy as np
import cv2

cap = cv2.VideoCapture(0)

#定义视频编码器
#这里有必要提一下fourcc
#FourCC全称Four-Character Codes,代表四字符代码 (four character code), 它是一个32位的标示符,其实就是typedef unsigned int FOURCC;是一种独立标示视频数据流格式的四字符代码。
#因此cv2.VideoWriter_fourcc()函数的作用是输入四个字符代码即可得到对应的视频编码器。
#FourCC 码以下面的格式传给程序,以 MJPG 为例:
#cv2.cv.FOURCC('M','J','P','G') 或者 cv2.cv.FOURCC(*'MJPG')。
fourcc = cv2.VideoWriter_fourcc(*'XVID')#使用XVID编码器
out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))#出分别是:保存文件名、编码器、帧率、视频宽高

while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:

        # 保存录像结果
        out.write(frame)

        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# 释放内存
cap.release()
out.release()
cv2.destroyAllWindows()

友情链接:https://blog.csdn.net/u012348774/article/details/78255130

http://www.fourcc.org/codecs.php

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用OpenCV调用摄像头,显示图片,获取视频并保存
    • 一、图片
      • 二、视频
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档