在有了前面打开摄像头成像和简单的图像比较程序后,实现实时监控的程序就不是很难了。即加入新的定时器,在规定时间取一帧图像后与前一帧比较,得出差值。
但是问题出现在了Mat型的赋值上,Mat a=b; 相当于b和a指向了同一地址,所以无论怎么比相似率均为百分之100。
在调整后使用 b=a.clone(); 后程序执行成功,此时b赋值了a原先的矩阵。
代码如下:
JianKong.h
#pragma once
#include <QWidget>
#include <qimage.h>
#include <qtimer.h>
#include <opencv2/opencv.hpp>
#include <opencv2\highgui\highgui.hpp> //opencv申明
#include "QtGuiApplication.h"
#include "ui_JianKong.h"
class JianKong : public QMainWindow
{
Q_OBJECT
public:
JianKong(QWidget *parent = Q_NULLPTR);
~JianKong();
public slots:
void on_Return_clicked();
void on_Open_Crm_clicked();
void on_Close_Crm_clicked();
void readFarme(); //读取帧信息
void Compare();
void on_Start_BiJiao_clicked();
private:
Ui::JianKong ui;
QTimer *timer_Jk;
QTimer *timer_chuli;
VideoCapture cap_Jk;
M