QT下调用摄像头(opencv2.4.4)

http://www.cnblogs.com/yuliyang/p/3525107.html

项目pro文件:

#-------------------------------------------------
#
# Project created by QtCreator 2014-01-18T14:39:58
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = opencv_vedio
TEMPLATE = app
INCLUDEPATH +=D:\program\opencv\build\includeINCLUDEPATH +D:\program\opencv\build\include\opencvINCLUDEPATH +=D:\program\opencv\build\include\opencv2
CONFIG(debug,debug|release) {
LIBS += -LD:\program\opencv\build\x86\vc10\lib     -lopencv_core244d     -lopencv_highgui244d     -lopencv_imgproc244d     -lopencv_features2d244d     -lopencv_calib3d244d
} else {
LIBS += -LD:\program\opencv\build\x86\vc10\lib     -lopencv_core244     -lopencv_highgui244     -lopencv_imgproc244     -lopencv_features2d244     -lopencv_calib3d244
}

SOURCES += main.cpp        dialog.cpp

HEADERS  += dialog.h

FORMS    += dialog.ui

dialog.h:

#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <QTimer>
#include <QPixmap>
namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private:
    Ui::Dialog *ui;
    CvCapture *capture; //highgui 里提供的一个专门处理摄像头图像的结构体
    IplImage *frame; //摄像头每次抓取的图像为一帧,使用该指针指向一帧图像的内存空间
    QTimer *timer; //定时器用于定时取帧,上面说的隔一段时间就去取就是用这个实现。
private slots:
    void getFrame(); //实现定时从摄像头取图并显示在label上的功能。

};

#endif // DIALOG_H

dialog.cpp:

#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    timer = new QTimer(this);
    capture = cvCaptureFromCAM(0); //cvCaptureFromCAM其实是一个宏,就是cvCreateCameraCapture的别名,0代表第一个摄像头。-1代表默认摄像头。
    if(capture==NULL){
          qDebug()<<"error!";
        }
    timer->start(50); //1000为1秒,50毫秒去取一帧
    connect(timer,SIGNAL(timeout()),this,SLOT(getFrame())); //超时就去取
}

Dialog::~Dialog()
{
    timer->stop(); //停止取帧
    cvReleaseCapture(&capture); //释放资源是个好习惯
    delete ui;
}
void Dialog::getFrame(){
    frame = cvQueryFrame(capture); //从摄像头取帧
    QImage image = QImage((const uchar*)frame->imageData, frame->width, frame->height, QImage::Format_RGB888).rgbSwapped(); //简单地转换一下为Image对象,rgbSwapped是为了显示效果色彩好一些。
    ui->label->setPixmap(QPixmap::fromImage(image));
}

效果:

时间: 2024-08-04 15:41:58

QT下调用摄像头(opencv2.4.4)的相关文章

python使用opencv在Windows下调用摄像头

环境准备 1.我这里使用的是python3.7.4,python官网下载较慢的同学可以移步至 https://pan.baidu.com/s/1XiPafBjM__zfBvvsLyK7kQ 提取码:zi0a 2.使用pip安装numpy与opencv-python模块   安装成功后会提升succeed,这里我已安装所以提示已存在.需要注意的是opencv-python目前只有python3.7的支持版本不支持最新的python3.8.    可在阿里云的镜像仓库内查看opencv-python

qt下调用win32api 修改分辨率

在头文件中添加 #include <window.h> DEVMODE DevMode; EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &DevMode); DevMode.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT; DevMode.dmPelsWidth = 800; DevMode.dmPelsHeight = 600; ChangeDisplaySettings(&DevMode,

win7系统下使用openCV调用摄像头问题

鄙人今日尝试使用openCV调用摄像头做图片中圆的圆心位置检测时,意外发现程序能成功调用笔记的集成摄像头,但却无法调用外接的USB摄像头.(使用的为OpenCV1.0 + VC6.0) 使用程序如下: #include"cv.h"#include"highgui.h"#include"cvcam.h"#include"iostream"using namespace std; int main(int argc,char* a

java 下拉多级联动 头像裁剪 调用摄像头 SpringMVC mybatis SSM

获取[下载地址]   QQ 313596790三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 调用摄像头拍照,自定义裁剪编辑头像 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,开发利器)+快速构建表单;  技术:313596790freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里

OpenCV编程-&gt;Windows7下调用iPhnoe摄像头

//////////////////////////////////////////////////////////////  指尖热度原创,转载请注明来自http://blog.csdn.net/sunboyiris  ///////////////////////////////////////////////////// 首先在iPhone上装webcamera软件,Windows7系统上安装webcamera软件. 在Windows7系统上的webcamera上设置如下: 点击进入设置如

麦子学院Android实战调用摄像头代码分享

Android如何实现调用摄像头?在安卓APP开发的过程中,经常会需要调用手机自身摄像头拍照的代码,那么android调用摄像头的代码是什么呢?现在麦子学院android开发老师告诉大家,android调用摄像头这个方法十分的简单实用,有需要的小伙伴可以参考下. 应用场景: 在Android开发过程中,有时需要调用手机自身设备的功能,本文侧重摄像头拍照功能的调用. 知识点介绍: 使用权限:调用手机自身设备功能(摄像头拍照功能),应该确保已经在AndroidManifest.xml中正确声明了对摄

win8 metro 调用摄像头拍摄照片并将照片保存在相应的位置

刚刚做过这类开发,所以就先献丑了,当然所贴上的源码都是经过验证过的,已经运行成功了,希望可以给大家一些借鉴: 下面是metro UI代码: <Page x:Class="Camera.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

【C#】#100 调用摄像头

需求:由于项目需要获得用户的头像,所以需要用C#调用摄像头获取头像. 下面写一个调用摄像头的方法 案例:调用摄像头的一个DEMO[效果图] 使用的类库:AForge.dll   [Demo下载,Demo里面有类库] 1.检测电脑上的摄像头设备 FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); 用Count判断摄像头设备的个数,如果没有摄像头,则抛出异常[自行

使用vue做移动app时,调用摄像头扫描二维码

现在前端技术发展飞快,前端都能做app了,那么项目中,也会遇到调用安卓手机基层的一些功能,比如调用摄像头,完成扫描二维码功能 下面我就为大家讲解一下,我在项目中调用这功能的过程. 首先我们需要一个中间框架,hbuilder http://www.html5plus.org/doc/zh_cn/accelerometer.html 这个是html5+的文档地址,我们找到Barcode模块, 有这么多,然后我们往下找 找到这段代码 <!DOCTYPE html> <html> <