资源简介
这是一个VS2017工程,可以直接编译运行。实现了利用OpenCV来实时播放RTSP视频流,并能过够截取图片保存为文件。为了不影响RTSP视频流的获取与播放,图片的保存在另一个线程里实现。
![](http://www.nz998.com/pic/66551.jpg)
代码片段和文件信息
// 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的数字识别468815
- 使用opencv去掉二值化图像中黑色面积
- opencv环境配置
- win10 64位下编译的opencv4.5.5库,opencv
- VisualSVN 6.0.4 破解版(支持VS2017)
- Visual Studio 2017企业版 Enterprise,专业版
- VS2017_Professional_15.5.7+密钥
- Microsoft Visual Studio 2017 Installer Project
- onvif协议视频转码推流网页播放
- 流媒体相关协议标准RTP/RTSP/RTCP PDF文档
- NVIDIAOpticalFlowSDK-79c6cee80a2df9a196f20afd6
- opencv_contrib-3.4.0.zip
- opencv2.4.9源码分析——SIFT
- 用两个摄像头实现,双目标定,双目
- opencv_traincascade训练分类器,手势识别
- opencv3.0交叉编译用parallel.cpp
- 基于opencv的图像识别识别图像中的色
- 基于openCV的识别特定颜色区域
- 基于OpenCV的分水岭算法实现
- QT+opencv+OCR 身份证号码,银行卡号识别
- opencv视频特定颜色区域识别
- 把RGB转换为HSV和HSI然后根据黄色和蓝
- opencv视觉测距
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- SfM稀疏三维点云重建--完整工程文件
- 基于opencv的数人头程序源代码
- H264实时编码RTSP直播
- 利用OpenCV中的Stitcher类实现全景图像拼
- opencv实现的sift算法源码,包含了图像
评论
共有 条评论