Qt窗口操作,调用摄像头,找边缘,找人脸

这篇博客介绍了一个使用Qt实现的窗口应用,具备读取图片、画图、调用摄像头、找边缘和人脸识别的功能。通过Qt界面,用户可以进行图片轮播、绘制形状、实时捕获和处理摄像头图像,以及对图片进行边缘检测和人脸识别。
摘要由CSDN通过智能技术生成

一、实验目的 
通过实验掌握使用Qt读取图片,画图,调用摄像头等功能,了解opencv库的一些功能及使用,进一步熟悉用Qt进行开发的步骤,从而更好的学习这门课程。
二、实验内容
用Qt实现一个窗口界面,功能包括:
(1)读图片:可以读取指定路径图片并在窗口显示,图片轮播功能,也可以直接拖入图片;
(2)画图:可以通过拖到鼠标实现画圆或者矩形;
(3)相机:可以调用摄像头进行实时拍照,停止时关闭摄像头;
(4)找边缘:可以对指定路径的图片实现水平方向、垂直方向和整体的找边缘;
(5)找人脸:可以对指定路径的图片进行简单人脸识别,并用矩形画出检测出人脸的位置。
三、功能函数 
#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    initUi();
    img=QImage(ui->label->width(),ui->label->height(),QImage::Format_ARGB32);
    mt=new QTimer();
    connect(mt,SIGNAL(timeout()),this,SLOT(timerdo()));

    mt1=new QTimer();
    connect(mt1,SIGNAL(timeout()),this,SLOT(timer1do()));

    mt1=new QTimer();
    connect(mt1,SIGNAL(timeout()),this,SLOT(timer1do()));

    imglist.clear();
    imglist<<"C:/Users/Public/Pictures/Sample Pictures/Koala.jpg"
              <<"C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg"
             <<"C:/Users/Public/Pictures/Sample Pictures/Tulips.jpg"
            <<"C:/Users/Public/Pictures/Sample Pictures/Desert.jpg";

    pos=0; dx=dy=0; wid=200; hei=100;
    ui->label->setFocus();
    sp=ep=QPoint(0,0);

    this->installEventFilter(this);
    this->setAcceptDrops(true);
    initCam();
}

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

void Widget::initUi()
{
    QVBoxLayout *vlay=new QVBoxLayout();
    vlay->addWidget(ui->btn_read);
    vlay->addWidget(ui->btn_draw);
    vlay->addWidget(ui->comboBox);
    vlay->addWidget(ui->btn_anim);
    vlay->addWidget(ui->btn_openCam);
    vlay->addWidget(ui->btn_stop);
    vlay->addWidget(ui->btn_cvTest);
    vlay->addWidge

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在下知尔泽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值