怎么通过JNI调用手机自身摄像头录像并处理图片
求教:如何通过JNI调用手机自身摄像头录像并处理图片?
刚接触opencv和Android不久,现在把之前做的图像处理的东西在Android平台上实现,现在通过Camera调用摄像头取象传给本地代码处 理,本地代码需要100ms的话,Camera取象加上图像在Java和本地代码之间传递要花300ms左右,希望能够处理速度更快一点。
想请教如何通过JNI调用手机自身的摄像头取象呢?能不能边录边处理?
------解决思路----------------------
如果想直接通过C来取摄像头数据,这要涉及到驱动了,打开设备的操作试试
------解决思路----------------------
"图像在Java和本地代码之间传递"你可以从这方面着手,其实并不需要把数据传到jni层,只需要在jni层开辟一块内存,java层获取camera数据后直接写内存然后通知jni读就行了
------解决思路----------------------
你是用onpreviewframe来获取图像数据的?preview的数据,从camerahal传递到app这边,copy了多次,效率是很低的。
最快的方法应该是直接用surfaceTexture,把surfaceTexture传给camera,这样你可以直接通过surfaceTexture来访问到图像数据,然后去处理。
刚接触opencv和Android不久,现在把之前做的图像处理的东西在Android平台上实现,现在通过Camera调用摄像头取象传给本地代码处 理,本地代码需要100ms的话,Camera取象加上图像在Java和本地代码之间传递要花300ms左右,希望能够处理速度更快一点。
想请教如何通过JNI调用手机自身的摄像头取象呢?能不能边录边处理?
------解决思路----------------------
如果想直接通过C来取摄像头数据,这要涉及到驱动了,打开设备的操作试试
------解决思路----------------------
"图像在Java和本地代码之间传递"你可以从这方面着手,其实并不需要把数据传到jni层,只需要在jni层开辟一块内存,java层获取camera数据后直接写内存然后通知jni读就行了
------解决思路----------------------
你是用onpreviewframe来获取图像数据的?preview的数据,从camerahal传递到app这边,copy了多次,效率是很低的。
最快的方法应该是直接用surfaceTexture,把surfaceTexture传给camera,这样你可以直接通过surfaceTexture来访问到图像数据,然后去处理。