HK+OPENCV+QT项目记录

这篇博客详细记录了一次使用海康(HK)设备结合OpenCV图像处理库和QT框架进行图像处理的项目经验,主要涉及securityrecoginate.cpp和securityrecognite.h两个关键文件的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

海康opencv+qt图像处理,记录

securityrecoginate.cpp

#include "securityrecognite.h"
#include "ui_securityrecognite.h"
//#include "includes/video/hkvision/win32/HCNetSDK.h"
//#include "includes/video/hkvision/win32/plaympeg4.h"
#include <QDebug>
#include "opencv2/photo.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <QBuffer>
#define USECOLOR 1

int SecurityRecognite::m_connectTime = 0;
int SecurityRecognite::m_reconnectTime = 0;
QString SecurityRecognite::m_ipAddress = "";
int SecurityRecognite::m_port = 0;
QString SecurityRecognite::m_userName = "";
QString SecurityRecognite::m_password = "";
LONG SecurityRecognite::m_userId = -1;
NET_DVR_USER_LOGIN_INFO SecurityRecognite::m_loginInfo = {0};
NET_DVR_DEVICEINFO_V40 SecurityRecognite::m_deviceInfo = {0};
NET_DVR_PREVIEWINFO SecurityRecognite::m_struPlayInfo = {0};
LONG SecurityRecognite::m_realPlayHandle = 0;
LONG SecurityRecognite::m_channelId = 1;
LONG nPort;
HWND hWnd=NULL;

SecurityRecognite::SecurityRecognite(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::SecurityRecognite)
{
    ui->setupUi(this);
    videoLayout.addWidget(&videoWidget);
    videoLayout.setSpacing(1);
    videoLayout.setContentsMargins(0,0,0,0);
    ui->videoWidget->setLayout(&videoLayout);
}

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

void CALLBACK g_ExceptionCallBack(DWORD dwType, LONG IUserID, LONG IHandle, void *pUser)
{
    char tempbuf[256] = {};
    switch (dwType)
    {

    case EXCEPTION_RECONNECT:
        printf("--------reconnect-------%d\n", time(NULL));
        break;
    default:
        break;
    }
}





void SecurityRecognite::on_pushButton_clicked()
{
    qDebug() << "CALLBACK started!";

}



void yv12toYUV(char *outYuv, char *inYv12, int width, int height,int widthStep)
{
   int col,row;
   unsigned int Y,U,V;
   int tmp;
   int idx;

   for (row=0; row<height; row++)
   {
      idx=row * widthStep;
      int rowptr=row*width;

      for (col=0; col<width; col++)
      {
         //int colhalf=col>>1;
         tmp = (row/2)*(width/2)+(col/2);
         Y=(unsigned int) inYv12[row*width+col];
         U=(unsigned int) inYv12[width*height+width*height/4+tmp];
         V=(unsigned int) inYv12[width*height+t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值