摘要: 前面提到了YV12转RGB的各种实现方法和优化方法,主要是CPU上的实现。本文主要介绍基于GPU的YV12转RGB的实现。1. 基于OpenGL的实现利用OpenGL shader实现将YV12转RGB,将Y、U、V分量数据作为纹理数据,并构造YUV转RGB的shader代码,最终纹理数据在shad... 阅读全文
posted @ 2014-05-07 16:12 一点心青 阅读(4644) 评论(1) 推荐(1) 编辑
摘要: YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式。RGB与YUV的变换公式如下: YUV(256 级别) 可以从8位 RGB 直接计算:Y = 0.299 R + 0.587 G + 0.114... 阅读全文
posted @ 2014-05-07 15:53 一点心青 阅读(76974) 评论(5) 推荐(8) 编辑
摘要: YUV,是一种颜色编码方法,Y表示明亮度(Luminance、Luma),U和V则是色度、浓度(Chrominance、Chroma)。YUV,Y`UV,YCbCr,YPbPr等都可以称为YUV,彼此有重叠。YUV和Y`UV通常用来描述模拟信号,YCbCr与YPbPr则是用来描述数位的影像信号。YU... 阅读全文
posted @ 2014-05-07 15:47 一点心青 阅读(13121) 评论(0) 推荐(0) 编辑
摘要: 本文主要记录在64位Windows 7下,编译64位ffmpeg的过程。1.资源准备 (1). MSYShttp://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ (2). MinGW-w64http://www.drangon.org/mingw/ (3). SDLhttp://www.libsdl.org/download-1.2.php (4). x264http://www.videolan.org/developers/x264.html (5). FFmpeghttp://ww... 阅读全文
posted @ 2014-03-27 13:31 一点心青 阅读(28637) 评论(1) 推荐(0) 编辑
摘要: 为了深入了解ffmpeg的工作原理,需要阅读源代码,调试源代码。在Windows下调试ffmpeg源码,一种方法是在MinGW+Msys环境下,利用GDB进行调试;另一种是借助Eclipse进调试,其本质也是调用GDB进行调试,只是提供了良好界面,便于用户交互。本文主要记录利用Eclipse调试FFmpeg源码的过程。1.Eclipse安装 Eclipse安装过程可参考网上其他资料,安装完Eclipse后,需要配置C/C++开发环境,参考:http://shinepaopao.iteye.com/blog/1926445。2.建立ffmpeg工程 Eclipse-->File--> 阅读全文
posted @ 2014-03-26 19:51 一点心青 阅读(10427) 评论(1) 推荐(1) 编辑
摘要: 由于FFmpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译,需要在Windows下配置一个类似Linux的编译环境。本文主要记录Windows下FFmpeg编译的过程。1.资源准备准备编译过程所需的软件工具和源代码。(1). MinGW-MSYS Bundlehttp://sourceforge.net/projects/mingwbundle/(2).Yasm http://yasm.tortall.net/Download.html(3).SDL http://www.libsd.. 阅读全文
posted @ 2014-03-26 15:46 一点心青 阅读(38944) 评论(0) 推荐(0) 编辑
摘要: 由于相机正面白摄物体时,相机的光轴方向可能发生变化,带来扭曲。而SIFT算法虽具有完全的尺度不变性,但不具有完全的仿射不变性,对拍摄角度发生大角度空间变化的图像特征提取有一定的局限性。ASift通过模拟经度与纬度实现完全的仿射不变,然后用SIFT算法把模拟图像进行比较,最后实现特征匹配。ASIFT算法的具体步骤如下:1.选取采样参数,模拟不同经度与纬度的图像。2.计算模拟图像的特征。3.结合所有的模拟图像的特征,进行特征匹配。注意:ASIFT提供的一种框架,其核心思想是模拟不同的经度与纬度的图像,具体模拟图像的特征提取和匹配,可选择SIFT、SURF等特征。ASIFT算法代码资源:htt... 阅读全文
posted @ 2014-03-04 11:37 一点心青 阅读(11982) 评论(1) 推荐(1) 编辑
摘要: SACON(SAmple CONsensus)算法是基于样本一致性的运动目标检测算法。该算法通过对每个像素进行样本一致性判断来判定像素是否为背景。算法框架图 由上图可知,该算法主要分为四个主要部分,分别是邻域差分、SACON算法核心处理、空洞填充后处理、TOM(Time Out Map),其中TOM(Time Out Map)主要用于背景模型更新,其他部分属于前景目标检测。背景模型建立 SACON算法建立背景模型的方法是直接取视频序列的前N帧作为背景模型。 对于每个像素而言,其背景模型可以表示为:C(c1,c2,...,cN),对于彩色图像,ci=(r,g,b),对于灰度图像,则... 阅读全文
posted @ 2014-01-23 11:14 一点心青 阅读(5812) 评论(1) 推荐(0) 编辑
摘要: SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应多个中间节点,将背景模型中的一个像素映射到模型的多个位置,并采用了像素邻域空间相关的更新方式,使邻域的信息进一步融入模型中,使得算法具有邻域空间相关性。算法伪代码 背景模型建立 选择背景模型的映射大小,一般选取n = 3,即一个像素点对应于模型中的3*3块,背景模型相比于原始图像扩大了9倍。 选择HSV颜色空间,选取第一帧数据作为背景模型的初始化数据。如上图示例所示,ai(h,s,v... 阅读全文
posted @ 2014-01-22 14:36 一点心青 阅读(4937) 评论(0) 推荐(0) 编辑
摘要: PbModel是基于概率模型的背景差分算法,其基本思想是像素点会因光照变化、运动物体经过产生多种颜色值,但是一段时间内,像素点处于静止状态的时间会比处于运动状态的时间长。因而一段时间内,像素点某个颜色值出现的概率会高于其他颜色值,高概率的颜色值即为该像素点的背景值。创新点1.关注基于概率的背景模型的内存占用率和计算复杂度 基于概率的背景模型是常用的背景建模方法,但是现有一些算法,其内存占用率高,计算复杂度大。 该算法利用聚类减少内存占用率,将像素点可能出现的颜色值,按距离聚类,以聚类中心代替颜色值,从而减少内存占用率。 利用不固定长度的帧序列建立背景模型,由于许多像素点一般都处于静止... 阅读全文
posted @ 2014-01-21 19:15 一点心青 阅读(1550) 评论(0) 推荐(0) 编辑