如何使用Opencv调用电脑摄像头?

这篇具有很好参考价值的文章主要介绍了如何使用Opencv调用电脑摄像头?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

当我们想要使用opencv对视频图像进行处理时,往往第一步便是需要调用电脑摄像头,下面博主将提供两种版本的代码(含详细注释),帮助大家学习如何使用Opencv调用电脑摄像头进行视频录制并保存:

一、C++版本

1. 从相机中读取视频

/*从相机中读取视频*/
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	//打开捕获器(0-系统默认摄像头)
	VideoCapture cap(0); 
	Mat frame;
	//打开失败
	if (!cap.isOpened()) {
        cerr << "Cannot open camera";
        return -1;
    }
	//打开成功
	while (true) {
		//读取视频帧
		cap.read(frame);
		//显示图像
		imshow("Pig", frame);
		//监听键盘,按任意键退出
		if (waitKey(5) >= 0)
            break;
	}
    cap.release();  //释放捕获器
	return 0;
}

2. 从文件中读取视频

/*从文件中读取视频*/
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
    //视频文件所在路径
    String path = "vtest001.avi";
	//打开捕获器
	VideoCapture cap(path); 
	Mat frame;
	//打开失败
	if (!cap.isOpened()) {
        cerr << "Cannot open video";
        return -1;
    }
	//打开成功
	while (true) {
		//读取视频帧
		cap.read(frame);
		//显示图像
		imshow("Pig", frame);
		//监听键盘,按任意键退出
		if (waitKey(5) >= 0)
            break;
	}
    cap.release();  //释放捕获器
	return 0;
}

3. 保存视频

/*保存视频*/
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main()
{
	//打开捕获器(0-系统默认摄像头)
	VideoCapture cap(0);
	Mat frame;
	//创建视频写入对象并定义保存格式
    VideoWriter videoWriter("out001.avi", videoWriter.fourcc('X', 'I', 'V', 'D'),25 ,Size(100, 100));
	//打开失败
	if (!cap.isOpened()) {
        cerr << "Cannot open camera";
        return -1;
    }
	//打开成功
    while(true)
    {
		//逐帧读取
		cap.read(frame);
		//显示视频画面
		imshow("test",frame);
		//进行视频保存
        videoWriter.write(frame);
		//监听键盘,按任意键退出
		if (waitKey(5) >= 0)
            break;
    }
    cap.release();  //释放捕获器
    videoWriter.release();  //释放视频写入对象
	return 0;
}

二、Python版本

1. 从相机中读取视频

'''从相机中读取视频'''
import numpy as np  #导入科学计算库numpy
import cv2 as cv  #导入opencv-python
#打开捕获器(0-系统默认摄像头)
cap = cv.VideoCapture(0)
#打开失败
if not cap.isOpened():
    print("Cannot open camera")
    exit()
#打开成功
while True:
    #如果正确读取帧,ret为True
    ret, frame = cap.read()
    #读取失败,则退出循环
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    #图像处理-转换为灰度图
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    #显示画面
    cv.imshow('frame', gray)
    #获取键盘按下那个键
    key_pressed = cv.waitKey(60)
    #如果按下esc键,就退出循环
    if key_pressed == 27:
        break
cap.release()  #释放捕获器
cv.destroyAllWindows() #关闭图像窗口

2. 从文件中读取视频

'''从文件中读取视频'''
import numpy as np  #导入科学计算库numpy
import cv2 as cv  #导入opencv-python
#打开捕获器('vtest.avi'-视频文件所在路径)
cap = cv.VideoCapture('vtest.avi')
#逐帧处理图像
while cap.isOpened():
    #如果正确读取帧,ret为True
    ret, frame = cap.read()
    #读取失败,则退出循环
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    #图像处理-转换为灰度图
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
    #显示画面
    cv.imshow('frame', gray)
    #获取键盘按下那个键
    key_pressed = cv.waitKey(60)
    #如果按下esc键,就退出循环
    if key_pressed == 27:
        break
cap.release()  #释放捕获器    
cv.destroyAllWindows() #关闭图像窗口

3. 保存视频文章来源地址https://www.toymoban.com/news/detail-513861.html

'''保存视频'''
import numpy as np  #导入科学计算库numpy
import cv2 as cv  #导入opencv-python
#打开捕获器(0-系统默认摄像头)
cap = cv.VideoCapture(0)
# 定义编解码器并创建VideoWriter对象
fourcc = cv.VideoWriter_fourcc(*'XVID')
out = cv.VideoWriter('output.avi', fourcc, 20.0, (640,  480))  #视频保存格式
while cap.isOpened():
    #如果正确读取帧,ret为True
    ret, frame = cap.read()
    #读取失败,则退出循环
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    #图像处理-翻转图像
    frame = cv.flip(frame, 0)
    #保存图像
    out.write(frame)
    #图像显示
    cv.imshow('frame', frame)
    #获取键盘按下那个键
    key_pressed = cv.waitKey(60)
    #如果按下esc键,就退出循环
    if key_pressed == 27:
        break
cap.release()   #释放捕获器 
out.release()  #关闭视频保存
cv.destroyAllWindows()   #关闭图像窗口

到了这里,关于如何使用Opencv调用电脑摄像头?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【计算机视觉 · OpenCV】使用 OpenCV 调用手机摄像头

    Droidcam 是一款可以将手机变成网络摄像头的工具,我们可以利用 Droidcam 让 OpenCV 拥有调用手机摄像头的能力。 2.1 安装 DroidCam 在手机和电脑上分别安装 DroidCam 的客户端和服务端 下载地址:https://pan.baidu.com/s/1DrBn3P1Bx-SXa4d6oziifA?pwd=gr1o 提取码:gr1o 2.2 测试连接状态 手机和电脑需

    2024年02月09日
    浏览(52)
  • Python进阶,使用 opencv 调用摄像头进行拍照

             opencv 支持 Python 版本的模块叫作 opencv-p hon ,可直接使用 pip install opencv-python 令进行安装,但常常会因为网络等问题导致失败。推荐使用离线模式来安装 opencv 模块。 下载完安装包后,使用如下命令进行安装: D: pip install opencv

    2024年02月11日
    浏览(69)
  • Jetson Orin Nano 使用OpenCV调用USB摄像头

    Jetson Orin Nano 8G ubuntu 20.04 检查usb摄像头是否被识别到 或者 Jetson Orin Nano 使用OpenCV调用USB摄像头

    2024年01月21日
    浏览(70)
  • 【深度学习】python使用opencv调用摄像头拍摄并保存图片

    打开pycharm,新建一个camerm.py文件,把下面代码复制粘贴进去就可以了。 需要安装两个库:pip install opencv-python;pip install numpy

    2024年02月11日
    浏览(42)
  • 使用ffmpeg调用电脑自带的摄像头和扬声器录制音视频

    1、打开cmd,执行 chcp 65001 ,修改cmd的编码格式为utf8,避免乱码 2、执行指令 ffmpeg -list_devices true -f dshow -i dummy ,查看当前window的音频和视频名称 3、打开windows系统的\\\"打开声音设置\\\"–“麦克风隐私设置”–\\\"允许应用访问你的麦克风\\\"点击开启 录制视频: 录制音频: 录制音视频:

    2024年02月04日
    浏览(58)
  • 树莓派利用python-opencv使用CSI摄像头调用监控视频

    目录 一、安装python-opencv。 二、使用工具Xshell7和MobaXterm 三、连接并打开CSI摄像头 3.1连线如图所示: 3.2打开摄像头 四、编写摄像头代码调用摄像头         一定要选择配置好的安装python-opencv,不要去配置安装,然后还cmake编译,没有必要基本上安装过程都会报2-3个错误,还

    2023年04月17日
    浏览(55)
  • [Unity/AR]使用vuforia开发项目时无法调用电脑前置摄像头怎么办?

    我当时试了一万种方法,经过无数漫长黑夜的折磨 我发现,就是装unity的时候加了中文路径。。。 有可能还会提示DATABASES _LOAD_ERROR  也是中文路径的问题  谨以此文警醒自己 所有和uniyy相关的东西都不要放在中文路径!!!

    2024年02月07日
    浏览(48)
  • 树莓派CSI摄像头使用python调用opencv库函数进行运动检测识别

    目录 一、完成摄像头的调用 二、利用python调用opencv库函数对图像进行处理 2.1 图像处理大体流程 2.2 opencv调用函数的参数以及含义 2.2.1 ret, img = cap.read() 读取帧图像 2.2.2 cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 灰度图像 2.2.3 gray_diff_img = cv2.absdiff(gray_img, previous_img) 帧差法 2.2.4 cv2.thre

    2024年02月15日
    浏览(53)
  • 前端调用电脑摄像头

    项目中需要前端调用,所以做了如下操作 先看一下效果吧 主要是基于vue3,通过canvas把画面转成base64的形式,然后是把base64转成 file文件,最后调用了一下上传接口 但是这个得开启浏览器的摄像头权限,不然会报错 以下是代码 进入页面先调用一下摄像头 拍照 转base64 完整代

    2024年02月10日
    浏览(51)
  • 电脑获取网络摄像头图像及调用

    目前市面上常见的摄像头大体有以下几种类型,一种是usb摄像头,一种是带wifi网络摄像头,还有一种有线网络摄像头,通过一根网线连接电脑用于传输图像。本文主要讲解下有线网络摄像头的调用配置。 这种摄像头一般有两个接口,分别是网口和电源口,接线非常简单就是

    2024年02月01日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包