• 大小: 1.06MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-26
  • 语言: 其他
  • 标签: qtCamera  

资源简介

是基于嵌入式linux下QT开发的 Camera摄像头采集视频源码,并且源码里面最重要还有一份QT界面的控件说明文档等等,源码经测试,直接可编译使用

资源截图

代码片段和文件信息

#include “camera.h“
#include “ui_camera.h“

#include 
#include 
#include 
#include 
#include 
#include 

static int fd = -1;
struct buffer
{
    void *  start;
    size_t  length;
};

struct buffer *       buffers = NULL;
static unsigned int   n_buffers = 0;
static unsigned int   width = 800;
static unsigned int   height = 480;
static char* deviceName = “/dev/video0“;

char image_buf[1536000+54];

unsigned char bmp_h[] =
{
                0x420x4d            //BM
                0x420x700x170x00  // 172000+66
                0x000x000x000x00
                0x360x000x000x00  //bmp_data offset
                0x280x000x000x00
                0x200x030x000x00   //width
                0xE00x010x000x00   //hieght
                0x010x00
                0x200x00             //32bit
                0x000x000x000x00
                0x000x700x170x00  //bmp_data size
                0x000x000x000x00
                0x000x000x000x00
                0x000x000x000x00
                0x000x000x000x00
};

Camera::Camera(QWidget *parent) :
    QWidget(parent)
    ui(new Ui::Camera)
{
      ui->setupUi(this);

      timer = new QTimer;

      this->imageWidget = new ImageWidget(this);
      this->imageWidget->setBackgroundRole(QPalette::Dark);
      this->imageWidget->setSizePolicy(QSizePolicy::Ignored QSizePolicy::Ignored);
      this->imageWidget->setobjectName(QString::fromUtf8(“imageWidget“));
      this->imageWidget->setGeometry(QRect(5 50 491 371));

      connect(this->timer SIGNAL(timeout()) this SLOT(up_date()));

      deviceOpen();
      deviceInit();
      captureStart();
}

Camera::~Camera()
{
      delete ui;
}

void Camera::closeEvent(QCloseEvent *event)
{
        deviceUninit();
        event->accept();  //exit
}

void deviceOpen(void)
{
       fd = open(deviceName O_RDWR | O_NONBLOCK 0);

       if (-1 == fd)
       {
            QMessageBox::about(NULL “About“ “camera open error“);
            exit(EXIT_FAILURE);
       }
}


/*  initialize device*/

void deviceInit(void)
{
    struct v4l2_capability cap;
    struct v4l2_cropcap cropcap;
    struct v4l2_crop crop;
    struct v4l2_format fmt;
    unsigned int min;

     if (-1 == xioctl(fd VIDIOC_QUERYCAP &cap))
     {
            if (EINVAL == errno)
            {
                 QMessageBox::about(NULL“Information““ no V4L2 device“);
                 exit(EXIT_FAILURE);
            }
           else
            {
                 errno_exit(“VIDIOC_QUERYCAP“);
            }
      }

      if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE))
      {
             QMessageBox::about(NULL“Information““ no video capture device“);
             exit(EXIT_FAILURE);
      }

      struct v4l2_input input;
      input.index = 0;
      if ( ioctl(fd VIDIOC_ENUMINPUT &input) != 0)
      {
            QMessageBox::about(NULL“Information““set input error“);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10241  2013-07-30 14:57  Camera\camera.cpp

     文件       1009  2013-07-30 14:48  Camera\camera.h

     文件        340  2013-07-30 14:21  Camera\Camera.pro

     文件      44361  2013-07-31 10:40  Camera\Camera.pro.user

     文件        968  2013-07-13 13:33  Camera\camera.ui

     文件        961  2013-07-30 14:58  Camera\imagewidget.cpp

     文件        500  2012-05-04 20:02  Camera\imagewidget.h

     文件        278  2013-07-13 11:03  Camera\main.cpp

     文件    1552031  2013-08-05 11:31  Camera\Qt4.7测试程序使用说明.pdf

     目录          0  2016-11-25 10:16  Camera

----------- ---------  ---------- -----  ----

              1610689                    10


评论

共有 条评论

相关资源