精华内容
下载资源
问答
  • qt opencv 摄像头监控 拍照qt opencv 摄像头监控 拍照
  • 主要介绍了opencv摄像头捕获识别颜色,用opencv通过摄像头捕获识别颜色,红色蓝色等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Qt+OpenCV 摄像头显示图像

    热门讨论 2011-04-15 09:57:24
    Qt+OpenCV 摄像头显示图像 Qt OpenCV 摄像头
  • VC6.0 OpenCV 摄像头程序

    2013-11-22 14:34:48
    VC6.0 OpenCV 摄像头程序,适合初学者
  • OPENCV摄像头图像获取与处理,很适合新手看看,入门推荐,大神飘过。
  • opencv 摄像头和视频操作的几种方法 打开摄像头的两种方法以及保存录制保存视频的方法 带快进快退和实时显示当前视频进度
  • OpenCV摄像头读取 现在开始慢慢接触到计算机视觉,所以研究了下OpenCV。 好了,不说废话,上代码: cv::VideoCapture capture{0};//使用相机 if (!capture.isOpened()) { cout << "无法打开视频" <<...

    OpenCV摄像头读取_C++/Python

    现在开始慢慢接触到计算机视觉,所以研究了下OpenCV。
    好了,不说废话,上代码:

    	cv::VideoCapture capture{0};//使用相机
    	if (!capture.isOpened()) {
    		cout << "无法打开视频" << endl;
    	}
    	cv::Mat frame;
    	string winTitle{ "video" };
    	cv::namedWindow(winTitle, cv::WINDOW_AUTOSIZE);
    	while (capture.read(frame))
    	{
    		cv::imshow(winTitle, frame);
    		cv::waitKey(16);//必须要设置等待时间,否则会因为刷新太快而造成窗口无法响应
    	}
    
    

    完毕,是的,就是这么简单!你现在应该能看到你的笔记本电脑的摄像头的视频了~

    噢,对了,顺便附上Python版本的:

    import cv2.cv2 as cv
    import numpy as np
    
    capture=cv.VideoCapture(0)
    winTitle="cameraDemo"
    cv.namedWindow(winTitle,cv.WINDOW_AUTOSIZE)
    while True:
        ok, frame = capture.read()
        if ok: #是否成功读取
            cv.imshow(winTitle,frame)
        if cv.waitKey(16)==27: #如果点了退出键
            break;
    

    Zr
    2020-07-17
    于公司内忙着搬砖时记录

    展开全文
  • c++OpenCV摄像头保存视频和图像

    千次阅读 2017-01-19 00:24:45
    OpenCV摄像头保存视频和图像

     

    #include <QCoreApplication>
    #include "highgui.h"//包含OpenCV库头文件
    #include "cv.h"
    using namespace std;
    
    int main( int argc, char** argv ) {//主函数
        cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE );//创建窗口,(名字,默认大小)
        CvCapture *capture   = NULL;// 视频获取结构,用来作为视频获取函数的一个参数
        CvVideoWriter *video=NULL;
        int n;
        capture = cvCreateCameraCapture(0);//打开摄像头,从摄像头中获取视频
        if(!capture) //如果不能打开摄像头给出警告
        {
            //       cout<<"Can not open the camera."<<endl;
            return -1;
        }
        IplImage* frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
        int i=0;
        while(1)
        {
            frame = cvQueryFrame( capture );// 从摄像头中抓取并返回每一帧
            if( !frame ) break;//如果抓取帧为空   break 打破循环否则将抓取的那一帧显示在创建的窗口上
            //创建cvvideowriter对象并分配空间,保存文件名为camera.avi,编码要在运行时选择,大小就是摄像头视频的大小,帧率为32
            if(i==0)
            video=cvCreateVideoWriter("camera.avi",CV_FOURCC('X', 'V', 'I', 'D'),25,cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间
    //        video=cvCreateVideoWriter("camera.avi",CV_FOURCC('M','P','4','3'),15,cvSize(frame->width,frame->height),1);
            if(video)
            {
                //cout<<"video writer has created!"<<endl;
            }
            n=cvWriteFrame(video,frame);
              printf("cvWriteFrame %d\n", n);
            i++;
            //cout<<n<<endl;
            cvShowImage( "Example2", frame );//在窗口上显示每一帧
            char c = cvWaitKey(33);//延时,每秒钟约33帧;符合人眼观看速度;
            if( c == 27 ) break;
    //         cvReleaseImage(&frame);
            //由于是死循环,而且没有控制台,当按下键盘esc键,将按键的ASCII值给C,如果C为ESC(ASCII 为27)循环退出退出循环;
        }
         cvReleaseVideoWriter(&video);
        cvReleaseCapture( &capture );//释放内存;
        cvDestroyWindow( "Example2" );//销毁窗口
        return 0;
    }

     

    
     
     <QCoreApplication>
    #include "highgui.h"//包含OpenCV库头文件
    #include "cv.h"
    using namespace std;
    
    int main( int argc, char** argv ) {//主函数
        cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE );//创建窗口,(名字,默认大小)
        CvCapture *capture   = NULL;// 视频获取结构,用来作为视频获取函数的一个参数
        CvVideoWriter *video=NULL;
        int n;
        capture = cvCreateCameraCapture(0);//打开摄像头,从摄像头中获取视频
        if(!capture) //如果不能打开摄像头给出警告
        {
            //       cout<<"Can not open the camera."<<endl;
            return -1;
        }
        IplImage* frame;//申请IplImage类型指针,就是申请内存空间来存放每一帧图像
        int i=0;
        while(1)
        {
            frame = cvQueryFrame( capture );// 从摄像头中抓取并返回每一帧
            if( !frame ) break;//如果抓取帧为空   break 打破循环否则将抓取的那一帧显示在创建的窗口上
            //创建cvvideowriter对象并分配空间,保存文件名为camera.avi,编码要在运行时选择,大小就是摄像头视频的大小,帧率为32
            if(i==0)
            video=cvCreateVideoWriter("camera.avi",CV_FOURCC('X', 'V', 'I', 'D'),25,cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间
    //        video=cvCreateVideoWriter("camera.avi",CV_FOURCC('M','P','4','3'),15,cvSize(frame->width,frame->height),1);
            if(video)
            {
                //cout<<"video writer has created!"<<endl;
            }
            n=cvWriteFrame(video,frame);
              printf("cvWriteFrame %d\n", n);
            i++;
            //cout<<n<<endl;
            cvShowImage( "Example2", frame );//在窗口上显示每一帧
            char c = cvWaitKey(33);//延时,每秒钟约33帧;符合人眼观看速度;
            if( c == 27 ) break;
    //         cvReleaseImage(&frame);
            //由于是死循环,而且没有控制台,当按下键盘esc键,将按键的ASCII值给C,如果C为ESC(ASCII 为27)循环退出退出循环;
        }
         cvReleaseVideoWriter(&video);
        cvReleaseCapture( &capture );//释放内存;
        cvDestroyWindow( "Example2" );//销毁窗口
        return 0;
    }

     

    下面是保存图片的例子:

    int main4()
    {
        CvCapture* capture=cvCaptureFromCAM(-1);
        CvVideoWriter* video=NULL;
        IplImage* frame=NULL;
        int n;
        if(!capture) //如果不能打开摄像头给出警告
        {
            //cout<<"Can not open the camera."<<endl;
            return -1;
        }
        else
        {
            frame=cvQueryFrame(capture); //首先取得摄像头中的一帧
            video=cvCreateVideoWriter("camera.avi",-1,32,
                                      cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间
            //保存的文件名为camera.avi,编码要在运行程序时选择,大小就是摄像头视频的大小,帧频率是32
            if(video) //如果能创建CvVideoWriter对象则表明成功
            {
                //cout<<"VideoWriter has created."<<endl;
            }
            cvNamedWindow("Camera Video",1); //新建一个窗口
            while(1)
            {
                frame=cvQueryFrame(capture); //从CvCapture中获得一帧
                if(!frame)
                {
                    //cout<<"Can not get frame from the capture."<<endl;
                    break;
                }
                 char ImagesName[1024];
                       sprintf(ImagesName, "Image%.3d.bmp", n);
                       cvSaveImage(ImagesName, frame);
                n=cvWriteFrame(video,frame); //判断是否写入成功,如果返回的是1,表示写入成功
                //cout<<n<<endl;
                cvShowImage("Camera Video",frame); //显示视频内容的图片
                if(cvWaitKey(2)>0) break; //有其他键盘响应,则退出
            }
            cvReleaseVideoWriter(&video);
            cvReleaseCapture(&capture);
            cvDestroyWindow("Camera Video");
        }
        return 0;
    }

     

     main4()
    {
        CvCapture* capture=cvCaptureFromCAM(-1);
        CvVideoWriter* video=NULL;
        IplImage* frame=NULL;
        int n;
        if(!capture) //如果不能打开摄像头给出警告
        {
            //cout<<"Can not open the camera."<<endl;
            return -1;
        }
        else
        {
            frame=cvQueryFrame(capture); //首先取得摄像头中的一帧
            video=cvCreateVideoWriter("camera.avi",-1,32,
                                      cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间
            //保存的文件名为camera.avi,编码要在运行程序时选择,大小就是摄像头视频的大小,帧频率是32
            if(video) //如果能创建CvVideoWriter对象则表明成功
            {
                //cout<<"VideoWriter has created."<<endl;
            }
            cvNamedWindow("Camera Video",1); //新建一个窗口
            while(1)
            {
                frame=cvQueryFrame(capture); //从CvCapture中获得一帧
                if(!frame)
                {
                    //cout<<"Can not get frame from the capture."<<endl;
                    break;
                }
                 char ImagesName[1024];
                       sprintf(ImagesName, "Image%.3d.bmp", n);
                       cvSaveImage(ImagesName, frame);
                n=cvWriteFrame(video,frame); //判断是否写入成功,如果返回的是1,表示写入成功
                //cout<<n<<endl;
                cvShowImage("Camera Video",frame); //显示视频内容的图片
                if(cvWaitKey(2)>0) break; //有其他键盘响应,则退出
            }
            cvReleaseVideoWriter(&video);
            cvReleaseCapture(&capture);
            cvDestroyWindow("Camera Video");
        }
        return 0;
    }

     

     

     

     

     

    展开全文
  • opencv 摄像头分辨率设置

    千次阅读 2017-12-28 01:04:55
    opencv摄像头属性设置,注意,要在摄像头open之后设置这些属性,否则无效   VideoCapture cap; // open the default camera using default API cap.open(0); // OR advance usage: select any API backend ...

    opencv摄像头属性设置,注意,要在摄像头open之后设置这些属性,否则无效

       

        VideoCapture cap;
        // open the default camera using default API
        cap.open(0);
        // OR advance usage: select any API backend
        int deviceID = 0;             // 0 = open default camera
        int apiID = cv::CAP_ANY;      // 0 = autodetect default API
    
        // open selected camera using selected API
        cap.open(deviceID + apiID);
        // check if we succeeded
        if (!cap.isOpened()) {
            cerr << "ERROR! Unable to open camera\n";
            return -1;
        }
    
    	cap.set(CV_CAP_PROP_FPS, 30);
    	cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
    	cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);



    展开全文
  • Qt5:opencv摄像头播放视频

    千次阅读 2018-10-23 23:17:17
    GitHub下载:Qt+opencv摄像头播放视频 CSDN下载:https://download.csdn.net/download/mars_xiaolei/11015580 前期准备 我们的目的是将摄像头采集到的视频显示在Qt界面窗口上,而不是imshow到OpenCV自己的窗口...

     

    完整代码 


    GitHub下载:Qt+opencv摄像头播放视频
    CSDN下载:https://download.csdn.net/download/mars_xiaolei/11015580

     

    前期准备


    我们的目的是将摄像头采集到的视频显示在Qt界面窗口上,而不是imshow到OpenCV自己的窗口上。在编写代码之前,需要先在Qt上配置OpenCV,如果没有配置,请先把OpenCV配置好;如果已配置,直接跳过。

    Qt上配置OpenCV链接:https://blog.csdn.net/mars_xiaolei/article/details/83246358

     

    OpenCV播放视频简单示例


    1、打开Qt,新建一个Qt Widgets Application项目,添加1个label控件和2个pushButton按钮,修改pushButton按钮的名字为“开始”和“停止”,控件对象名未进行修改。

    2、由于使用到了OpenCV,因此需要在pro项目配置文件里添加OpenCV的附加头文件包含路径,根据自己配置的OpenCV进行修改,大致内容如下:

    # 附加头文件包含,一般要编译链接第三方库时配置include目录
    # 注意:1、可以用绝对路径或相对路径 2、相对路径中的./可以省略 3、路径中不允许出现空格
    INCLUDEPATH += D:/OpenCV342/opencv/build/include
    
    LIBS += D:\OpenCV342\QtOpenCV\install\x86\mingw\lib\libopencv_*.a

    3、接下来要添加“信号槽”,分别选中两个push button,右键选择转到槽...,然后选择clicked(),系统会自动创建控件单击响应函数。

    4、也可以手动进行添加 “信号槽”,一共需要三步:(1)头问价添加slots槽函数声明(2)源文件添加槽函数定义(3)源文件添加信号槽连接,大致内容如下:

    //槽函数声明
    private slots:
        void ReadFrame();
        void OpenCameraClicked();
        void CloseCameraClicked();
    void MainWindow::ReadFrame()
    {
        //获取图像帧
        capture>>frame;
        /*
        //将抓取到的帧,转换为QImage格式,QImage::Format_RGB888使用24位RGB格式(8-8-8)存储图像
        //此时没有使用rgbSwapped()交换所有像素的红色和蓝色分量的值,底色偏蓝
        QImage image = QImage((const uchar*)frame.data,frame.cols, frame.rows,QImage::Format_RGB888);
        //将图片显示到label上
        ui->label->setPixmap(QPixmap::fromImage(image));
        */
    
        //将视频显示到label上
        QImage image = QImage((const uchar*)frame.data,frame.cols,frame.rows,QImage::Format_RGB888).rgbSwapped();
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
    
    //打开摄像头
    void MainWindow::OpenCameraClicked()
    {
        capture.open(0);//打开摄像头
        timer->start(25);//开启定时器,一次25ms
    }
    
    //关闭摄像头
    void MainWindow::CloseCameraClicked()
    {
        timer->stop();//关闭定时器
        capture.release();//释放图像
    }
    connect(timer,SIGNAL(timeout()),this,SLOT(ReadFrame()));
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(OpenCameraClicked()));//打开摄像头
    connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(CloseCameraClicked()));//打开摄像头

    5、下面分别是pro文件、mainwindow.h、mainwindow.cpp的代码

    pro文件

    #-------------------------------------------------
    #
    # Project created by QtCreator 2019-03-12T15:46:40
    #
    #-------------------------------------------------
    
    QT       += core gui
    
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
    
    TARGET = PlayVideoTest
    TEMPLATE = app
    
    # The following define makes your compiler emit warnings if you use
    # any feature of Qt which has been marked as deprecated (the exact warnings
    # depend on your compiler). Please consult the documentation of the
    # deprecated API in order to know how to port your code away from it.
    DEFINES += QT_DEPRECATED_WARNINGS
    
    # You can also make your code fail to compile if you use deprecated APIs.
    # In order to do so, uncomment the following line.
    # You can also select to disable deprecated APIs only up to a certain version of Qt.
    #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    
    
    SOURCES += \
            main.cpp \
            mainwindow.cpp
    
    HEADERS += \
            mainwindow.h
    
    FORMS += \
            mainwindow.ui
    
    # 附加头文件包含,一般要编译链接第三方库时配置include目录
    # 注意:1、可以用绝对路径或相对路径 2、相对路径中的./可以省略 3、路径中不允许出现空格
    INCLUDEPATH += D:/OpenCV342/opencv/build/include
    
    LIBS += D:\OpenCV342\QtOpenCV\install\x86\mingw\lib\libopencv_*.a

     mainwindow.h

    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include "QTimer"
    #include "QImage"
    #include "opencv2/opencv.hpp"
    
    using namespace cv;
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
        void ReadFrame();
        void OpenCameraClicked();
        void CloseCameraClicked();
    private:
        Ui::MainWindow *ui;
        VideoCapture capture;
        QTimer *timer;
        Mat frame;
    };
    
    #endif // MAINWINDOW_H

    mainwindow.cpp

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
        setWindowTitle("视频播放简单示例");
        timer=new QTimer(this);
        connect(timer,SIGNAL(timeout()),this,SLOT(ReadFrame()));
        connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(OpenCameraClicked()));//打开摄像头
        connect(ui->pushButton_2, SIGNAL(clicked()), this, SLOT(CloseCameraClicked()));//打开摄像头
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    void MainWindow::ReadFrame()
    {
        //获取图像帧
        capture>>frame;
        /*
        //将抓取到的帧,转换为QImage格式,QImage::Format_RGB888使用24位RGB格式(8-8-8)存储图像
        //此时没有使用rgbSwapped()交换所有像素的红色和蓝色分量的值,底色偏蓝
        QImage image = QImage((const uchar*)frame.data,frame.cols, frame.rows,QImage::Format_RGB888);
        //将图片显示到label上
        ui->label->setPixmap(QPixmap::fromImage(image));
        */
    
        //将视频显示到label上
        QImage image = QImage((const uchar*)frame.data,frame.cols,frame.rows,QImage::Format_RGB888).rgbSwapped();
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
    
    //打开摄像头
    void MainWindow::OpenCameraClicked()
    {
        capture.open(0);//打开摄像头
        timer->start(25);//开启定时器,一次25ms
    }
    
    //关闭摄像头
    void MainWindow::CloseCameraClicked()
    {
        timer->stop();//关闭定时器
        capture.release();//释放图像
    }

     

    显示结果


     

    展开全文
  • opencv摄像头 vmware虚拟机出现select timeout 2019-04-05 by 崔斐然
  • Qt在Windows上简单调用opencv摄像头Demo

    千次阅读 2016-09-14 17:27:07
    OpenCV也和Qt一样,有很多版本。...做一个简单的demo,用Qt调用opencv摄像头接口显示当前摄像头画面并拍照。 开发环境: 操作系统版本:Windows7sp1 64位 Qt版本:5.3.2 msvc2010 32bit opencv版本:2.4.1...
  • opencv摄像头标定

    2010-11-17 16:02:40
    opencv摄像头标定程序,棋盘格内角点为13*12个,方块边长为30mm
  • 基于QT开发的使用OpenCV进行摄像头视频采集,并用qt实现摄像头图像的刷新显示。
  • opencv摄像头程序

    2010-01-05 11:02:33
    自己写的利用Opencv打开USB摄像头的程序,VC6.0
  • 将整个VS工程打包,本人使用的环境为VS2010+opencv2.4.8。内附使用说明。环境配置参考的是http://blog.csdn.net/poem_qianmo/article/details/19809337/
  • opencv摄像头闪退问题总结,解决一闪而过的问题 总结: 1.视频解码问题 出现这种情况一般是你的电脑里缺少XviD codec(视频编解码器),也就是opencv打开视频之前必须将视频解码以得到可处理的数据,因此解决方案...
  • 最近在玩opencv摄像头人脸识别,我只做了一个简单的打开摄像头cheng
  • OpenCV摄像头支持的backend

    千次阅读 2019-05-02 18:56:00
    遇到OpenCV读取摄像头解码有问题的情况(windows默认为MSMF) 参照链接写了一个DSHOW调用的程序发现解析正常(有需要可以留言,但估计没啥用了) 后来想着是不是OpenCV也支持,故而扣了一下OpenCV支持的backend,...
  • opencv 摄像头基本使用

    2020-07-25 21:23:45
    本章内容 1.摄像头基本使用 输出结果 ...opencv2/opencv.hpp> #include <opencv2/xfeatures2d.hpp> int main(int argc, char *argv[]) { /* 本章内容 1.摄像头基本使用 */ /*...
  • Opencv摄像头标定

    千次阅读 2016-08-18 17:42:03
    目标:最近在做双目测距的东西,其中遇到获取摄像头内外参数的问题,就学习了相关的一些东西,做了下简单的记录,本文的目标是获取任意一款摄像头的-内外参数 开发环境:opencv2.4.9+Visual Studio 2013、opencv...
  • opencv摄像头用法

    千次阅读 2017-01-12 14:55:12
    c++打开摄像头: #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<iostream> using namespace std; using ...
  • opencv摄像头属性调用

    2015-05-02 06:48:06
    请教各位高手 opencv里如何调用摄像头驱动自带的“视频属性对话框”和“输入属性对话框”啊
  • opencv摄像头显示灰色

    2016-03-22 05:06:41
    小弟最近在搞人脸识别的问题,做到从摄像头读入这儿,但是很奇怪,一开始代码运行摄像头成功显示,但是后来却先显示灰色。![图片说明](https://img-ask.csdn.net/upload/201603/22/1458623091_659749.png) 代码我是...
  • opencv摄像头捕获识别颜色

    热门讨论 2011-11-14 13:00:03
    opencv,通过摄像头捕获识别颜色,红色蓝色等
  • opencv摄像头捕捉灰屏

    2019-03-20 22:52:16
    一个简单的测试代码,但是显示窗口是灰屏的(使用电脑的摄像头) win10,vs2017,opencv3.4.2 ``` #include #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; ...
  • xcode用c++调用opencv打开摄像头。Info.plist缺少NSCameraUsageDescription的值。 错误提示:【This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app...
  • 使用Opencv操作摄像头,启动摄像头录像并吧每帧保存为图像,需要电脑上已经安装配置好Opencv的环境(配置很简单,问度娘),否则不能编译通过。
  • python opencv 摄像头 视频处理

    万次阅读 2018-11-25 13:37:41
    # 从摄像头捕捉 import numpy as np import cv2 cap = cv2.VideoCapture(0) while(True): ret, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('frame',gray) if cv2.wai...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 32,273
精华内容 12,909
关键字:

opencv摄像头