参考链接:
1、https://blog.csdn.net/ustczhang/article/details/79087459
2、https://www.ryannn.com/archives/hikvision
按照这几篇博客来做的,中间还是遇到一些问题,可能之前的博客没有提及,我也纪录下来吧。
------------------------------------------------------------------------------------------------------------------------------------------------------
1、所需文件下载安装及环境变量配置。
以下文件都放入百度网盘。
下载链接:https://pan.baidu.com/s/1RH-6mx5SvIQ7nWQ9zyqIzg 提取码:pe4h
1.1、下载安装opencv3.4.0。
window的相对简单,如果不需要额外的contrib的包, 可以去官网下载编译好的版本。
opencv3.4.0 下载页面: https://opencv.org/releases/page/3/
1.2、下载海康SDK包。
下载页面: https://www.hikvision.com/cn/download_more_570.html
1.3、下载安装 Swig。
下载页面: http://www.swig.org/download.html
1.4、下载 OpenCV-swig 接口文件。
该文件用于预编译 OpenCV 相关函数,是一系列.i
后缀的文件。所用到的东西也就cpp的Mat格式python的numpy格式。
下载页面: https://github.com/renatoGarcia/opencv-swig
1.5 下载boost库
下载页面:https://www.boost.org/users/download/
1.6、环境变量配置。
1、opencv 2、海康库文件 3、swig 4、python(看这教程的人应该都装的吧。。)
2、使用swig生成接口文件
2.1将下载好的Opencv-swig文件夹下的文件与下面三个源文件放到一起。
//HKIPcamera.cpp
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv2\opencv.hpp>
#include <iostream>
#include <time.h>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <windows.h>
#include "HCNetSDK.h"
//#include "PlayM4.h"
#include "plaympeg4.h"
//#include "global.h"
//#include "readCamera.h"
#define USECOLOR 1
using namespace cv;
using namespace std;
//--------------------------------------------
int iPicNum = 0;//Set channel NO.
LONG nPort = -1;
HWND hWnd = NULL;
CRITICAL_SECTION g_cs_frameList;
list<Mat> g_frameList;
LONG lUserID;
NET_DVR_DEVICEINFO_V30 struDeviceInfo;
HANDLE hThread;
LONG lRealPlayHandle = -1;
void yv12toYUV(char *outYuv, char *inYv12, int width, int height, int widthStep)
{
int col, row;
unsigned int Y, U, V;
int tmp;
int idx;
//printf("widthStep=%d.\n",widthStep);
for (row = 0; row<height; row++)
{
idx = row * widthStep;
int rowptr = row*width;
for (col = 0; col<width; col++)
{
//int colhalf=col>>1;