上一页 1 2 3 4 5 6 ··· 9 下一页
摘要: 一、利用OpenCV中提供的GPU模块 目前,OpenCV中已提供了许多GPU函数,直接使用OpenCV提供的GPU模块,可以完成大部分图像处理的加速操作。 基本使用方法,请参考:http://www.cnblogs.com/dwdxdy/p/3244508.html 该方法的优点是使用简单,利用GpuMat管理CPU与GPU之间的数据传输,而且不需要关注内核函数调用参数的设置,使用过程中,只需要关注处理的逻辑操作。 缺点是受限于OpenCV库的发展和更新,当需要完成一些自定义的操作时(OpenCV中没有提供相应的库),难以满足应用的需求,需要自己实现自定义操作的并行实现。此外,针对一... 阅读全文
posted @ 2014-01-21 17:44 一点心青 阅读(31309) 评论(20) 推荐(1) 编辑
摘要: ViBe是一种像素级的背景建模、前景检测算法,该算法主要不同之处是背景模型的更新策略,随机选择需要替换的像素的样本,随机选择邻域像素进行更新。在无法确定像素变化的模型时,随机的更新策略,在一定程度上可以模拟像素变化的不确定性。背景模型的初始化 初始化是建立背景模型的过程,一般的检测算法需要一定长度的视频序列学习完成,影响了检测的实时性,而且当视频画面突然变化时,重新学习背景模型需要较长时间。 ViBe算法主要是利用单帧视频序列初始化背景模型,对于一个像素点,结合相邻像素点拥有相近像素值的空间分布特性,随机的选择它的邻域点的像素值作为它的模型样本值。 优点:不仅减少了背景模型建立的过程... 阅读全文
posted @ 2014-01-21 10:21 一点心青 阅读(16131) 评论(0) 推荐(2) 编辑
摘要: Pixel-Based Adaptive Segmenter(PBAS)检测算法,是基于像素的无参数模型,该算法结合了SACON和VIBE两个算法的优势,并在这两个算法的基础上改进而来,SACON和VIBE算法的介绍,请参考:【背景建模】SACONhttp://www.cnblogs.com/dwdxdy/p/3530862.html【背景建模】VIBEhttp://www.cnblogs.com/dwdxdy/p/3527891.html创新点:1).引入控制论的思想,使前景判断阈值和背景模型更新率自适应变化,随背景的复杂程度变化。2).引入背景复杂程度的度量方法,根据背景复杂程度调整前.. 阅读全文
posted @ 2014-01-20 15:38 一点心青 阅读(13832) 评论(2) 推荐(0) 编辑
摘要: 一、问题描述问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小。问题数学描述: 二、实例分析---穷举法在讲将匈牙利算法解决任务问题之前,先分析几个具体实例。以3个工作人员和3项任务为实例,下图为薪酬图表和根据薪酬图表所得的cost矩阵。 利用最简单的方法(穷举法)进行求解,计算出所有分配情况的总薪酬开销,然后求最小值。total_cost1 = 250 + 600 + 250 = 1100; x00 = 1,x11 = 1,x22 = 1;total_cost2 = 250 + 350.. 阅读全文
posted @ 2013-08-16 11:38 一点心青 阅读(32857) 评论(4) 推荐(0) 编辑
摘要: 前面介绍利用NVIDIA公司提供的CUVID库进行视频硬解码,下面将介绍利用DXVA进行硬解码。一、DXVA介绍 DXVA是微软公司专门定制的视频加速规范,是一种接口规范。DXVA规范制定硬件加速解码可分四级:VLD,控制BitStream;IDCT,反余弦变换;Mocomp,运动补偿,Pixel Prediction;PostProc,显示后处理。其中,VLD加速等级最高,所以其包含IDCT、MoCoopm和PostProc;IDCT加速次之,包含MoCoopm和PostProc;最后MoComp加速仅包含PostProc。一款显卡芯片在硬件支持DXVA规范,并不代表它就实现了DXVA所有. 阅读全文
posted @ 2013-08-09 16:47 一点心青 阅读(17308) 评论(1) 推荐(0) 编辑
摘要: 一、OpenCV中的硬编码OpenCV2.4.6中,已实现利用GPU进行写视频,编码过程由cv::gpu::VideoWriter_GPU完成,其示例程序如下。 1 int main(int argc, const char* argv[]) 2 { 3 if (argc != 2) 4 { 5 std::cerr " > frame;28 if (frame.empty())29 {30 std::cout << "Stop" << std::endl;31 break;32 ... 阅读全文
posted @ 2013-08-08 22:56 一点心青 阅读(9860) 评论(0) 推荐(0) 编辑
摘要: 问题描述:项目中,需要对高清监控视频分析处理,经测试,其解码过程所占CPU资源较多,导致整个系统处理效率不高,解码成为系统的瓶颈。解决思路:利用GPU解码高清视频,降低解码所占用CPU资源,加速解码过程。一、OpenCV中的硬解码OpenCV2.4.6中,已实现利用GPU进行读取视频,由cv::gpu::VideoReader_GPU完成,其示例程序如下。 1 int main(int argc, const char* argv[]) 2 { 3 if (argc != 2) 4 return -1; 5 const std::string fname(arg... 阅读全文
posted @ 2013-08-07 22:18 一点心青 阅读(20186) 评论(10) 推荐(0) 编辑
摘要: CUDA基本使用方法在介绍OpenCV中GPU模块使用之前,先回顾下CUDA的一般使用方法,其基本步骤如下:1.主机代码执行;2.传输数据到GPU;3.确定grid,block大小;4.调用内核函数,GPU运行程序;5.传输结果到CPU;6.继续主机代码执行。下图是两个向量相加的简单示例程序和处理流图。注意的问题:cu,cpp文件的组织内核函数和其wrapper函数置于cu文件中。在cpp文件声明wrapper函数,并调用wrapper函数。wrapper函数的声明定义需加extern "C"。OpenCV中GPU模块的使用使用的步骤与CUDA的基本使用方法类似,只是Ope 阅读全文
posted @ 2013-08-07 21:22 一点心青 阅读(54919) 评论(8) 推荐(2) 编辑
摘要: 问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果。解决思路:1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置鼠标回调函数。2.在鼠标回调函数中,选择感兴趣区域。代码实现如下,将感兴趣区域封装在MouseSelect类中,提供选择点和矩形框两种模式。 1 #pragma once 2 #ifndef __MOUSESELECT_H__ 3 #define __MOUSESELECT_H__ 4 5 #include 6 #include 7 8 #define MAX_OBJECTS 10 9 ... 阅读全文
posted @ 2013-08-07 19:58 一点心青 阅读(7650) 评论(0) 推荐(0) 编辑
摘要: 问题描述:ffplay播放rtsp视频流时,播放过程中随机出现花屏现象。基本流程学习:阅读ffplay源码,熟悉其播放rtsp视频流的基本流程。在ffplay源码阅读和分析的基础上,画出了其播放rtsp的函数调用关系,如下图所示:avformat_open_input函数根据输入的文件名,与rtsp_read_packet关联。rtsp_read_packet完成每个rtp包的读取和解析,读取主要是利用rtp_read从缓冲区获取数据,解析主要是根据rtp协议,解析rtp包,得到h264码流数据,由rtp_parse_packet完成。av_read_frame读取一帧数据的avpacket包 阅读全文
posted @ 2013-08-06 11:35 一点心青 阅读(24377) 评论(13) 推荐(2) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页