androidjavacv
‘壹’ android studio怎么配置javacv
1、使用AndroidStudio创建工程StudioTestJavaCV,名字可随意
2、打开AndroidStudio工程,在Android视图下无法看到工程目录中的libs文件夹,因此点击Android,将其更换Project视图
以上环境搭建完成
‘贰’ 如何将javacv软编码改为android硬编码
我们都知道,图像对象可以编码成指定图像格式文件保存在硬盘上,需要时再对其进行解码读入内存。但是除了这样还有别的办法可以将图像对象保存在硬盘上吗? 熟悉Java I/O 的人也许可以想到采用对象序列化(Object serialization)试一试,很好,但是如果你研究了 BufferedImage 类的结构后就会大失所望(至少当时我是这样)。 BufferedImage 提供一般图像管理。BufferedImage 对象包括另外两个对象:Raster 和 ColorModel。Raster 对象包含另外两个对象:DataBuffer 和 SampleModel。不幸的是,他们都没有实现序列化所必需的 Serializable 接口,所以无法直接对他们进行对象序列化。 我在学习 JAI 的时候发现了 javax.media.jai.remote 包里有一个类 SerializableRenderedImage,这个类实现了RenderedImage, Serializable 接口,可以将 RanderedImage 对象作为构造函数的参数实例化一个可以序列化的图像对象。 查看JDK的文档可以知道无论 Java 2D 中的 BufferedImage 还是 JAI 中的 PlanarImage 都实现了 RenderedImage 接口,也就是说所有实现自 RenderedImage 接口的对象均可作为参数包装出一个 SerializableRenderedImage 类型对象,将其序列化。 下面是一个简单的例子说明了这个类的使用方法: import java.io.*; import javax.media.jai.remote.*; import java.awt.image.*; public class SomeSerializableClass implements Serializable { protected transient RenderedImage image; public SomeSerializableClass(RenderedImage image) { this.image = image; } // Serialization method. private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); out.writeObject(new SerializableRenderedImage(image, true)); } // Deserialization method. private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); image = (RenderedImage) in.readObject(); } }
‘叁’ javacv要安装opencv么
应该是无法找到依赖库 需要把你项目里用到的Jpcap.dll文件复制到C:\Program Files\Java\jdk1.6.0_17\bin下 建议楼主试一下
‘肆’ android中做直播用mediacodec和ffmpeg还有javacv哪个好
直播,如果可以的话建议用mediacodec,硬解码,会比较省电,发热低,开发难度可能大一些,需要数据流解协议,解封装,解码播放,数据传输什么的,还有数据包结构,包头内容解析等等,pps,sps,i帧,p帧,解析出时间戳,帧长度等等
ffmpeg发热会高一点
‘伍’ android opencv 开发怎么实现不安装 manager
本文介绍eclipse下配置javacv的开发环境,过程十分简单,最后会举一个实例(FacePreview)进行验证配置是否成功。阅读本文的前提是Android+eclipse开发环境已经配置好(当然javacv并不是专为android而写的,普通java程序也是支持的)。
一、打开网页:http://code.google.com/p/javacv/。点击:Downloads,下载javacv-0.5-bin.zip及javacv-0.5-cppjars.zip,解压到任意目录。
二、点击Project Home,回到原来的页面,看到下面这段话:
Eclipse (Android 2.2 or newer):
Follow the instructions on this page: http://developer.android.com/training/basics/firstapp/
Go to File > New > Folder, select your project as parent folder, type "libs/armeabi" as Folder name, and click Finish.
Copy javacpp.jar and javacv.jar into
the newly created "libs" folder.
Extract all the *.so files from javacv-android-arm.jar, opencv-2.4.5-android-arm.jar,
and ffmpeg-1.2-android-arm.jar directly into the newly created "libs/armeabi" folder, without creating any of the subdirectories
found in the JAR files.
Navigate to Project > Properties > Java Build Path > Libraries and click "Add JARs...".
Select both javacpp.jar and javacv.jar from
the newly created "libs" folder.
三、按照二的步骤做,里面的第一步可以不理。第二、第三步很简单,第四步是把三个jar包里的.so文件提取出来,放到“libs/armeabi”目录下,提取方法:把jar重命名为rar,打开即可看到一堆.so文件。现在很多压缩软件可以打开jar包里面的文件,打开后直接拖过去即可。第五、第六步也很简单,照做即可。
下面举一个实例:FacePreview。要注意的是javacv的运行要求Android 2.2 on ARMv7 or newer versions,有些机子可能会运行不了。
一、eclipse新建一个工程,工程名:FacePreview,包名:com.googlecode.javacv.facepreview。
把javacv-bin/samples下的FacePreview.java复制到当前工程下替换原来的FacePreview.java。注意到
FacePreview.java里第25行的注释里提到:“IMPORTANT – Make sure your
AndroidManifiest.xml file includes the
following”,要把拍照的权限加到AndroidManifiest.xml里。
二、第110行处:File classifierFile = Loader.extractResource(getClass(),
“/com/googlecode/javacv/facepreview/haarcascade_frontalface_alt.xml”,
context.getCacheDir(), “classifier”,
“.xml”);用到了haarcascade_frontalface_alt.xml,如果找不到这个文件就网上下一个,然后把
haarcascade_frontalface_alt.xml放到指定位置。
三、把上文中提到的jar包及.so文件加入进去。
四、运行程序,大功告成。
After that, the wrapper classes for OpenCV and FFmpeg can automatically access all of their C/C++ APIs。
‘陆’ javacv要安装opencv么
新建一个android工程,然后: 1.选中此工程,依次File > New > Folder,输入 “libs/armeabi”作为文件名,再点击完成; 2.将第一大步解压OpenCV-2.4.0-android-arm得到的*.so动态链接库:
‘柒’ 用OpenCV开发人脸识别软件,用Java好还是用C/C++好
java的opencv顶多调用摄像头用,图像处理都用c++的opencv。对于opencv的开发,不管从开发效率还是执行效率,绝对是c++。java版的opencv想都不要想。
‘捌’ Android程序如何调用C下写的函数
你说的太多了,在这里很难说清楚。你说的opencv对Android的接口是javaCV吧,这个已经完全封装了Opencv 并且提供了硬件加速,简单处理的话,如果你不用这个有点可惜。
直接调用c的的话就是JNI不过需要在Linux环境下开发,编译.so。
那么java要做的就是把图像传给c,c处理完,在传回来显示。至于如何传递,我没有研究过。如果控制图像大小通过流还是可以的。如果像素高,图片大 你就要在考虑考虑了
‘玖’ 如何在Android上集成ffmpeg
由于最近要做一个音频视频合成的东东,经过各方面的资料查找,开始锁定javaCV,想用它搞定音视频合成的问题。可后来用javacv出现了很多问题,发邮件给javacv的作者,也没有得到很好的答案,后来逼于无奈只好移植ffmepg到andorid,在android上使用ffmpeg合成音视频的问题了,ffmpeg真的很强大,无所不能。不多说了, 下面直接介绍整个过程。
http://blog.csdn.net/wangjianzhongfj/article/details/39121707