项目需要做一个预研,基于hadoop map/Reduce实现大量视频数据的处理,将视频流中的图像进行人脸识别并输出。对于map/Reduce这个专题不在此做叙述,如有需求,在后期进行补充。
本篇主要是说明如何基于javaCV+openCV+FFmpeg环境,实现视频帧转为图像并进行人脸识别的过程。同时对视频图像提取和识别封装了两个util以供使用。
Linux环境下的hadoop、ffmpeg、openCV的环境配置说明、以及本例的实现思路讲解内容请参见附件:Linux下MapReduce__FaceRecog环境配置说明.xlsx。
以下是windows下开发环境搭建的说明。
一、javacv opencv环境搭建
JavaCV 提供了在计算机视觉领域的封装库,包括:OpenCV、ARToolKitPlus、libdc1394 2.x 、PGR FlyCapture和FFmpeg。所以利用该工具可以很容易地实现视频捕获、截图、转换分割、特征识别等功能。JavaCV实际上是使用JNI方式调用openCV、FFmpeg等库,因此配置javaCV环境时还需要同时安装依赖库的环境。
由其要注意的是JavaCV和openCV的版本是需要匹配的对应的,网上介绍较多的是JavaCV06 + opencv246,我这里使用的是JavaCV07 + opencv248,本质上没有什么区别。但JavaCV08以后的包结构都发生的变化,配置似乎又不一样。为避免不必要的麻烦,由其是相关的文档非常少,推荐大家不要使用JavaCV08以后的版本。
●opencv + javacv
1. 下载opencv-2.4.8.exe
http://opencv.org/downloads.html
2. 双击opencv.x.x.exe安装,其实就是解压过程(注意:一定要把它解压到C盘根目录下)
3. 设置环境变量添加path:
C:\opencv\build\x86\vc10\bin;C:\opencv\build\java\x86;
(第一个是为了vs2010设置的,第二个是为了eclipse设置的)
5.然后开始配置eclipse的javacv:
a)下载javacv-0.7-bin.zip
javacv的开源社区中似乎没找到这个版本,可以在CSDN这里下载。
b)在eclipse下新建一个Java Project:TestJavacv(名字随便取)
c)在TestJavacv下面新建文件目录libs/armeabi,建好之后,文件目录如下图所示
d)将javacv-0.7-bin.zip解压后得到的所有的jar文件拷贝到libs文件的根目录下,并添加到build path中。注意:不是armeabi目录。
e) 刚刚javacv-0.7-bin.zip解压后得到的目录里面会有javacv-android-arm.jar这个文件,解压,把它们里面所有*.so文件直接拷贝到刚创建的“libs/armeabi”文件夹中。
f)接着,再下载javacv-0.7-cppjars.zip,解压,解压目录里面有opencv-2.4.6.1-android-arm.jar文件,以及ffmpeg-2.0.1-android-arm.jar。再把这2个jar解压,把它们里面所有*.so文件直接拷贝到刚创建的“libs/armeabi”文件夹中。
g)在配置build path的设置中,把native环境配置一下,指定到JNI的opencv的Native库目录即C:\opencv\build\java\x86。
h)到至javacv+openCV就配置好了
测试代码如下(先在配置文件中配置vedio目录和简单参数,大家一看即明)
●FFmpeg
FFmpeg在windows下的安装非常简单,下载、解压之下,将FFmpeg的bin目录添加到Path系统变量就行了。可以参照下面的地址运行一些测试命令,试试FFmpeg的强大功能吧。
http://hwei199.iteye.com/admin/blogs/2277892
掌握了FFmpeg命令的用法,以后什么视频、音频的组合、切割就不需要到处找工具了,安装省心效率高。
分享到:
相关推荐
JavaCV(Java Computer Vision)是一个基于Java的计算机视觉库,它为Java和Android开发者提供了方便的接口来使用多个流行的计算机视觉框架,如OpenCV、FFmpeg等。在本项目中,我们将探讨如何配置JavaCV以及如何使用...
JavaCV(Java Computer Vision)是一个基于Java的计算机视觉库,它为Java开发者提供了一系列与图像处理、视频分析和机器学习相关的API。JavaCV的核心目标是简化在Java环境中使用开源计算机视觉库的过程,如OpenCV、...
这个“JavaCV Demo Android”是一个专门针对Android平台的应用示例,展示了如何在Android设备上使用JavaCV进行人脸识别。 OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它包含了大量的...
这个框架的目标是简化在Java中进行图像和视频处理的复杂性,使开发者能够轻松实现诸如视频分析、人脸识别、物体检测等功能。 FFmpeg是一个强大的跨平台多媒体处理工具,它支持多种音视频编码格式,可以进行编解码、...
总之,JavaCV结合OpenCV为我们提供了一种方便的方式来实现在Java环境中进行人脸识别。通过理解和实践这些基本的步骤,你可以构建更高级的应用,例如监控系统、身份验证系统,或者任何需要人脸检测功能的项目。
JavaCV提供了一系列跨平台的接口,它封装了如OpenCV、FFmpeg、libdc1394、FlyCapture等开源库,使得在Java环境中进行图像和视频处理变得简单。这个库支持实时视频流处理,可以用于人脸识别、运动检测、颜色跟踪等...
在实际项目中,可以结合JavaCV提供的接口和类,编写代码来实现如人脸识别、条码识别、图像拼接、运动跟踪等功能。同时,JavaCV还支持其他的计算机视觉库,如FFmpeg、Flann、Tess4J等,进一步增强了其在多媒体处理和...
这个压缩包包含的是一系列JavaCV所需的jar包,这些库使得Java开发者能够轻松地进行图像处理、视频分析以及计算机视觉相关的任务。以下是对这些知识点的详细说明: 1. **JavaCV**: JavaCV 是一个开源项目,由...
在实际应用中,JavaCV可以用于各种场景,如人脸识别、视频分析、运动追踪、图像增强等。如果你在开发一个需要处理图像或视频的Java项目,JavaCV是一个非常有用的工具,因为它简化了与其他库的集成,并提供了丰富的...
这个压缩包包含了一系列用于JavaCV的基础资源,允许开发者进行视频处理、图像分析以及计算机视觉相关的各种操作。 1. **JavaCV**:JavaCV的主要目标是简化在Java中使用计算机视觉库的过程。它提供了一个统一的API,...
通过Java接口,开发者可以使用OpenCV在Java应用程序中实现诸如图像滤波、特征检测、物体识别、人脸识别等复杂任务。OpenCV的Java API提供了丰富的类和方法,使得开发者无需深入理解底层C++代码,就能便捷地利用其...
JavaCV(Java Computer Vision)是一个Java接口,它提供了与多个计算机视觉库的绑定,包括OpenCV、FFmpeg、Pocketsphinx等。这个标题提到的是JavaCV的jar包,适用于三种不同的操作系统:Windows 64位、Linux 64位...
Java人脸识别是一种基于计算机视觉技术的应用,它通过分析图像或视频帧来检测、定位并识别人脸。在本项目中,代码已经预封装好,可以直接使用,并且提供了测试用的图片和视频,用户甚至可以将自己的脸部图像用于识别...
JavaCV(Java Computer Vision)是一个Java接口,它封装了多个计算机视觉库,如OpenCV、FFmpeg等,为Java开发者提供了强大的图像处理和计算机视觉功能。在这个“基于javacv的人脸检测Demo”中,我们将深入探讨如何...
JavaCV使得在Java环境中使用这些库变得更加容易,可以用于实时视频处理、图像分析、人脸识别、物体识别等任务。JavaCV还集成了OpenCV的Java Bindings,允许开发者利用OpenCV的强大功能进行复杂的图像处理操作。 ...
综上所述,JavaCV 平台 1.5.1 版本是一个为 Java 开发者设计的计算机视觉工具包,集成了 OpenCV 和 FFmpeg 等强大工具,提供了跨平台的支持,尤其适用于需要在 Windows 和 Android 上实现音视频处理和计算机视觉功能...
在这个特定的资源“javacv-0.7-cppjars-opencv-2.4.8”中,我们关注的是OpenCV的部分,这是一个非常著名的跨平台的计算机视觉库,广泛应用于图像处理、机器学习和实时视频分析等领域。 OpenCV(Open Source ...