文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

基于QtOpenCV实现图像数据采集软件

2024-04-02 19:55

关注

效果图

示例代码

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QTimer>
#include<QDebug>
#include<QDateTime>
#include<opencv2/opencv.hpp>

using namespace cv;
using namespace std;

QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

private slots:
    void updateLabel();//刷新label
    void on_button_getimage_start_clicked();

    void on_button_getimage_end_clicked();

    void on_button_opencapture_clicked();

private:
    Ui::Widget *ui;
    VideoCapture capture;
    QTimer *updatetimer;//视频刷新定时器
    Mat src;
    QImage image_src;
    bool saveflag;
    int i=0;
};
#endif // WIDGET_H

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    saveflag=false;
    this->setWindowTitle("image capturer");
    //关于刷新
    updatetimer=new QTimer(this);
    connect(updatetimer,&QTimer::timeout,this,&Widget::updateLabel);
}

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

//视频刷新
void Widget::updateLabel()
{
    if(!capture.isOpened())
    {
        qDebug()<<"capture error!";
        return;
    }
    else
    {
        capture>>src;
        if(src.empty())
        {
            qDebug()<<"src is empty!";
            return;
        }
        else
        {
            if(saveflag)
            {
                QDateTime now_time = QDateTime::currentDateTime();
                QString file_n_qstr="D:\\image_get\\cup\\"+now_time.toString("yyyyMMddhhmmss")+QString::number(i)+".jpg";
                string file_n_str=file_n_qstr.toStdString();
                imwrite(file_n_str,src);
                qDebug()<<file_n_qstr;
                i++;
                //save
            }
            //原图
            image_src =QImage((const unsigned char*)(src.data),src.cols,src.rows,src.cols*src.channels(),QImage::Format_BGR888);
            ui->label_show->setPixmap(QPixmap::fromImage(image_src));
        }
    }
}

void Widget::on_button_getimage_start_clicked()
{
    qDebug()<<"on_button_getimage_start_clicked";
    saveflag=true;
}

void Widget::on_button_getimage_end_clicked()
{
    qDebug()<<"on_button_getimage_end_clicked";
    saveflag=false;
}

void Widget::on_button_opencapture_clicked()
{
    qDebug()<<"start button is clicked";

    capture.open(0);
    if(!capture.isOpened())
    {
        qDebug()<<"open capture failed!";
    }
    else
    {
        updatetimer->start(30);
        qDebug()<<"open capture success!";
    }
}

到此这篇关于基于Qt OpenCV实现图像数据采集软件的文章就介绍到这了,更多相关Qt OpenCV图像数据采集软件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯