资源简介
使用opencv调用海康威视网络摄像头
代码片段和文件信息
#include
#include
#include
#include “Windows.h“
#include “HCNetSDK.h“
#include “plaympeg4.h“
#include
#include
using namespace std;
using namespace cv;
LONG nPort = -1;
volatile int gbHandling = 3;
//解码回调 视频为YUV数据(YV12),音频为PCM数据
void CALLBACK DecCBFun(long nPort char * pBuf long nSize frame_INFO * pframeInfo long nReserved1 long nReserved2)
{
if (gbHandling)
{
gbHandling--;
return;
}
long lframeType = pframeInfo->nType;
if (lframeType == T_YV12)
{
Mat pImg(pframeInfo->nHeight pframeInfo->nWidth CV_8UC3);
Mat src(pframeInfo->nHeight + pframeInfo->nHeight / 2 pframeInfo->nWidth CV_8UC1 pBuf);
cvtColor(src pImg CV_YUV2BGR_YV12);
// Sleep(-1);
imshow(“IPCamera“ pImg);
waitKey(1);
}
gbHandling = 3;
}
///实时流回调
void CALLBACK fRealDataCallBack(LONG lRealHandle DWORD dwDataType BYTE *pBuffer DWORD dwBufSize void *pUser)
{
switch (dwDataType)
{
case NET_DVR_SYSHEAD: //系统头
if (!PlayM4_GetPort(&nPort)) //获取播放库未使用的通道号
{
break;
}
//m_iPort = lPort; //第一次回调的是系统头,将获取的播放库port号赋值给全局port,下次回调数据时即使用此port号播放
if (dwBufSize > 0)
{
if (!PlayM4_SetStreamOpenMode(nPort STREAME_REALTIME)) //设置实时流播放模式
{
break;
}
if (!PlayM4_OpenStream(nPort pBuffer dwBufSize 10 * 1024 * 1024)) //打开流接口
{
break;
}
if (!PlayM4_Play(nPort NULL)) //播放开始
{
break;
}
if (!PlayM4_SetDecCallBack(nPort DecCBFun))
{
break;
}
}
break;
case NET_DVR_STREAMDATA: //码流数据
if (dwBufSize > 0 && nPort != -1)
{
if (!PlayM4_InputData(nPort pBuffer dwBufSize))
{
cout << “error“ << PlayM4_GetLastError(nPort) << endl;
break;
}
}
break;
default: //其他数据
if (dwBufSize > 0 && nPort != -1)
{
if (!PlayM4_InputData(nPort pBuffer dwBufSize))
{
break;
}
}
break;
}
}
void
- 上一篇:VTK与Qt整合的
- 下一篇:C++中用数组实现的通讯录
相关资源
- 激光雷达数据读取以及显示C++需配置
- OpenCV在TI 达芬奇以及OMAP平台下的移植
- 双目视觉匹配得到视差图
- CvImgCtrl 演示程序
- 用OpenCV实现Photoshop色阶调整算法
- 贝叶斯抠图C++源代码
- emgucv&opencv图像处理函数说明
- opencv实现分水岭算法
- 人工势场法C++版及利用opencv(or matl
- OpenCV+C++图像处理项目14个
- 用VS2015+opencv3.4.2+C++编写Yolov3目标检测
- 计算图像的平均灰度值
- OpenCV2.4.8
- 基于opencv的人脸识别程序-代码详解
- OpenCV通过直方图均衡化增强图像对比
- OpenCV种子填充实现彩色图像分割的代
- 基于 OPENCV 对三角形 的 角度检测
- 相机标定与图像畸变校正程序
- moravec算子c++代码
- openCV中stitching_detailed.cpp
- 11个常用OpenCV+C++图像处理
- opencv计算5*5邻域方差图
- opencv 视觉 追踪跟踪 经典kcf算法
- vc++6.0配置OpenCV
- 基于OpenCV的图像检索系统(源码)
- test_opencv.cpp
- opencv提取图片中人轮廓
- Python3+Opencv343环境搭建 dll load failed问
- 04_图像编辑器实现.zip
- 基于opencv人眼定位算法C++工程
评论
共有 条评论