资源简介
这是一个VS2017工程,可以直接编译运行。实现了利用OpenCV来实时播放RTSP视频流,并能过够截取图片保存为文件。为了不影响RTSP视频流的获取与播放,图片的保存在另一个线程里实现。
代码片段和文件信息
// Opencv_RTSP.cpp : 此文件包含 “main“ 函数。程序执行将在此处开始并结束。
//
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
HANDLE g_mutex;
struct MatNode
{
Mat *pMat;
string strtitle;
};
list g_matList;
DWORD WINAPI threadproc(LPVOID lpParam)
{
while (1)
{
MatNode *pNode = NULL;
WaitForSingleobject(g_mutex INFINITE);
if (g_matList.size() > 0)
{
pNode = g_matList.front();
g_matList.pop_front();
}
ReleaseMutex(g_mutex);
if (pNode)
{
imwrite(pNode->strtitle.c_str() *(pNode->pMat));
delete pNode->pMat;
delete pNode;
}
else
{
Sleep(10);
}
}
}
int main()
{
VideoCapture cap;
cap.open(“rtsp://192.168.1.160:554/0“);//呵呵,就这一句关键
Mat Camera_CImg;
Mat Camera_GImg;
cap.set(CV_CAP_PROP_frame_HEIGHT 300);
cap.set(CV_CAP_PROP_frame_WIDTH 300);
if (!cap.isOpened())
return 1024;
unsigned int count = 0;
g_mutex = CreateMutex(NULL FALSE NULL);
HANDLE hThread;
DWORD threadId;
hThread = CreateThread(NULL 0 threadproc NULL 0 &threadId);
while (1)
{
cap >> Camera_CImg;
if (Camera_CImg.empty())
break;
timeb t;
ftime(&t);
struct tm *local;
local = localtime(&(t.time));
char szTmp[200] = { 0 };
snprintf(szTmp sizeof(szTmp) - 1 “d:\\tmp\\%02d%02d%02d_%03d.jpg“ local->tm_hour local->tm_min local->tm_sec t.millitm);
#if 0
Mat *pMat = new Mat();
Camera_CImg.copyTo(*pMat);
MatNode *pNode = new MatNode;
pNode->pMat = pMat;
pNode->strtitle = szTmp;
WaitForSingleobject(g_mutex INFINITE);
g_matList.push_back(pNode);
ReleaseMutex(g_mutex);
#endif
#if 1
imshow(“input“ Camera_CImg);
if (cvWaitKey(5) == ‘q‘)
break;
#endif
}
system(“pause“);
return 0;
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门提示:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-11 09:11 Opencv_RTSP\
文件 2635 2018-12-10 12:31 Opencv_RTSP\Opencv_RTSP.cpp
文件 8700 2018-12-11 09:11 Opencv_RTSP\Opencv_RTSP.vcxproj
文件 956 2018-12-11 09:11 Opencv_RTSP\Opencv_RTSP.vcxproj.filters
文件 165 2018-12-10 10:18 Opencv_RTSP\Opencv_RTSP.vcxproj.user
- 上一篇:GS稳定匹配算法实现代码
- 下一篇:惠普打印机最全PPD文件1/10
相关资源
- OpenCV 飞行游戏手势控制源码.rar
- Qt+Opencv实现四步相移
- 相机标定棋盘图
- Opencv实战项目
- opencv.txt
- vs2017 MomoKai字体及颜色
- 利用Opencv较高效率的视频图像传输
- opencv人脸识别源码
- libopencv_core300.dll
- 坦克大战地图生成代码
- opencv_imgproc249d.dll
- opencv_highgui249d.dll
- 高级形态学变换
- opencv.rar
- FCN模型实现图像分割配套资料分享.
- 用于车牌识别的字符模板,数字,字
- OpenCVForUnity
- opencv 3.1.0 自带例程介绍
- OpenCV3.3百度云链接
- OpenCV-2.4.3百度网盘地址
- AsmHighlighter 汇编语法高亮 VS2017
- SURF、SIFT、ORB特征提取opencv程序
- 图像识别检测人数
- Rtsp流媒体PC端和手机网页直播代码
- 获取连通域(可根据面积筛选封闭图
- opencv头文件以兹互勉
- 视频车辆识别
- 利用QT5.8与opencv3.2做的照片融合
- rtsp解析实现音视频实时传输
- 基于opencv的retinex单尺度实现
评论
共有 条评论