opencv+qt+beaglebone 之获取摄像头数据。

最近在研究opencv。

把opencv获取摄像头数据调试成功。

一个简单的测试代码

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QLabel>
#include <QGridLayout>
#include <QPushButton>
#include <QComboBox>
#include <QImage>

//#include <core.hpp>
//#include <imgproc.hpp>
#include <highgui.h>
#include <cv.h>

class MainWindow  : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow();
    ~MainWindow();

private:
    QWidget* mainWindow;
    QGridLayout * mainLayout;
    QPushButton * buttonStart;
    QPushButton * buttonStop;
    QLabel * pictureCamera;
    QLabel * pictureProcess;

    CvCapture * pCapture;
    IplImage * pImage;

    void  paintEvent(QPaintEvent *event);
private slots :
    void startVideo();
    void stopVideo();
};

#endif

mainwindow.c艹~

#include "mainwindow.h"
#include <QPainter>
#include <iostream>
#include <sstream>
#include <math.h>

using namespace std;

MainWindow :: MainWindow()
{
    mainWindow = new QWidget;

    this->setCentralWidget(mainWindow);

    buttonStart = new QPushButton("START");
    buttonStart->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
    buttonStop = new QPushButton("STOP");
    buttonStop->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
    pictureCamera = new QLabel();
    pictureProcess = new QLabel();

    pCapture = cvCreateCameraCapture(0);
    pImage = cvQueryFrame(pCapture);

    mainLayout = new QGridLayout;

    mainLayout->addWidget(buttonStart,0,0,1,1);
    mainLayout->addWidget(buttonStop,0,1,1,1);
    mainLayout->addWidget(pictureCamera,1,0,5,5);
    mainLayout->addWidget(pictureProcess,1,5,5,5);

    mainWindow->setLayout(mainLayout);

    QObject::connect(buttonStart,SIGNAL(clicked()),this,SLOT(startVideo()));
    QObject::connect(buttonStop,SIGNAL(clicked()),this,SLOT(stopVideo()));
    this->setWindowTitle("beaglebone opencv test~");
    this->resize(QSize(600,300));

}

MainWindow :: ~MainWindow()
{
    cvReleaseCapture(&pCapture);

    mainWindow->deleteLater();
    mainLayout->deleteLater();

    buttonStart->deleteLater();
    buttonStop->deleteLater();
    pictureCamera->deleteLater();
    pictureProcess->deleteLater();

}

void MainWindow::startVideo()
{
    pImage = cvQueryFrame(pCapture);
    QImage showImage((const uchar *)pImage->imageData,pImage->width,pImage->height,QImage::Format_RGB888);
    pictureCamera->setPixmap(QPixmap::fromImage(showImage));
}

void MainWindow::stopVideo()
{
}

void MainWindow::paintEvent(QPaintEvent *event)
{

}

main.c艹

#include <QApplication>
#include <QFont>
#include "mainwindow.h"

int main(int argc ,char* argv[])
{
    QApplication app(argc,argv);
    MainWindow myWindow;
    myWindow.show();
    return app.exec();
}

效果

时间: 2024-09-30 18:36:04

opencv+qt+beaglebone 之获取摄像头数据。的相关文章

OpenCV获取摄像头视频并在MFC的Picture控件上显示

分为两步:OpenCV获取摄像头数据+图像在Picture上显示 第一步:OpenCV获取摄像头数据 参考:http://www.cnblogs.com/epirus/archive/2012/06/04/2535190.html http://blog.sina.com.cn/s/blog_6dbe9bdb0100nii7.html http://blog.csdn.net/augusdi/article/details/8762961 #include "stdafx.h" #in

直接获取摄像头传回的图像数据(人脸、微笑、眨眼: 识别--&gt;第一步):图像识别第一步

转:ios通过摄像头获取特定数据 文字太小可通过command '+'调大字体,温馨提示. 注释: 由于最近项目需求,需要一个能够实现对摄像头图片获取其中部分内容的功能,类似于二维码扫描.但是只需要获取特定位置的像素块进行简单计算即可,所以听上去还是很简单的,但是经过实践,发现,现实似乎与想象中不一样,由于摄像头拍到的数据,采用的是QZ(也就是CG框架)进行绘制,所以涉及到坐标系与frame的坐标系不一致的问题. 1:尝试直接拿到摄像头数据,先输出看下. code: 代码略. 总结: 直接使用摄

Android -- 获取摄像头帧数据解码

由于Android下摄像头预览数据只能  ImageFormat.NV21 格式的,所以解码时要经过一翻周折. Camera mCamera = Camera.open(); Camera.Parameters p = mCamera.getParameters(); p.setPreviewFormat(ImageFormat.NV21); /*这是唯一值,也可以不设置.有些同学可能设置成 PixelFormat 下面的一个值,其实是不对的,具体的可以看官方文档*/ mCamera.setPa

Android 关于获取摄像头帧数据解码

// 创建保存照片文件夹 private void CreateFileJPG() { File file = new File("/sdcard/image"); if (!file.exists()) { try { file.mkdirs(); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } } } /** * 拍照保存图片 * */ public void saveMyBitmap

使用 Qt 获取 UDP 数据并显示成图片

一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收的数据包的数量较大,Python 的处理速度可能没有那么快,而且之前对 Qt 也比较熟悉了,所以用Qt 作为客户端接收处理数据包,用近期学习的 Python 模拟发送数据包. 数据格式 在 TCP/IP 协议中,UDP 数据包的大小是由限制的,因此用 UDP 传输数据时,还要在 UDP 层上再封装一

C# 基于Directshow.Net lib库 USB摄像头使用DirectShow.NET获取摄像头视频流

https://blog.csdn.net/u010118312/article/details/91766787 https://download.csdn.net/download/u010118312/11238555 https://github.com/wanglong/DirectShow.NET-Webcam-Barcode-Reader 开源社区提供了DirectShow的.NET版本,为C#开发者提供了便利.这里分享下如何用DirectShow.NET API来启动摄像头,以及

摄像头数据的接入

我的个人博客( 肥龙的博客)发表了新文章了! 欢迎大家过来阅读,以下是文章的连接地址 http://www.comingcode.com/?p=446 公司系统开始将摄像头数据接入进来了,所以最近都在弄调用摄像头厂家sdk的东西,基本就看了三个厂家:大华.海康.科达,都是先从开发文档开始了解,然后开始写些简单的测试程序验证我们的需求. 既然有了比较,这里我肯定也要比较一下三个厂家的sdk使用易用性.就目前了解的程度来看,大华和海康的sdk基本都是一样的,听说这两个其实以前是同一个厂家,后来分出来

solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据

solr与.net系列课程(四)solr查询参数的讲解与.net如何获取solr数据 上一节我们完成了solr连接数据库,细心的朋友会发现一个问题,就是solr其实和语言没有任何关系,配置完成后任何语言都可以直接调用,本章我们主要对solr的查询做出讲解,然后就是新接触的人最关心的.net如何获取solr中的数据. 本节我准备了一个300万左右的数据表,为大家做演示 然后我们开始配置schema.xml 文件: <field name="id" type="string

移植opencv到开发板,摄像头在开发板6410上的采集使用(1)

最近在搞人眼检测 人脸识别移植opencv qt 到开发板tiny6410的时候在虚拟机跑得程序可以用,但是一直到开发板一堆错误. 移植qt我简单写一下很简单 然后安装QT4.7 ①     拷贝压缩包到主机/opt目录下 ②     #mkdir –p /opt/mini6410 ③     #cd /opt/mini6410 ④     #tar zxvf /opt/qt-everywhere-opensource-src-4.7.0.tar.gz ⑤     执行以下命令执行Qt4.7.0