如何在android中将自定义过滤器应用于相机流?

Posted

技术标签:

【中文标题】如何在android中将自定义过滤器应用于相机流?【英文标题】:How to apply custom filters to camera stream in android? 【发布时间】:2012-08-28 09:50:10 【问题描述】:

尝试编写一个相机应用程序,我可以在运行时应用自定义过滤器,目前 sdk 提供灰度、sephia 等内容,它就像设置参数一样简单。

但是,我需要对静止图像和视频应用我们自己的自定义过滤器(我将在其中编辑一些像素值),但这并不重要,因为概念是相同的。我设法在 ios 中使用opengles 做到了这一点,我希望在 android 上也能做到这一点。

到目前为止,我们尝试的方法是使用 sdk 并逐帧应用简单的灰度滤镜,但是相机预览要慢得多(fps 低得多),因为它可能应该在较低级别的 ndk 上完成或opengles。

【问题讨论】:

【参考方案1】:

Android 版 OpenCV 正是您所寻找的 :)

http://opencv.org/platforms/android.html

如果您想进一步提高性能,您可以使用 NDK 编译您的 C/C++ 代码,使其在 Android 设备上运行。如何使用openCv相机或Android原生相机进行图像/视频处理的示例有很多。

【讨论】:

【参考方案2】:

OpenGL 在 Android 上功能齐全且速度快。您可能可以重用大部分 iOS 代码。

【讨论】:

知道如何在 android 上做到这一点吗? (抓取相机流并直接在其中编辑,以适用于图像和视频的方式)? 很难说,只有你的暗示,你在 iOS 上使用 OpenGL 完成了你的工作。从本质上讲,您在那里所做的事情应该可以移植到 Android 上。现在,如果您选择更具体一些,则有必要讨论需求和可能性。一个重要的区别是像素格式:Android 相机返回半平面 YUV 420,而在 iOS 上您可以获得 RGB。但这就是片段着色器发挥作用的地方。

以上是关于如何在android中将自定义过滤器应用于相机流?的主要内容,如果未能解决你的问题,请参考以下文章

如何将相机预览流从android连接到Qt5?

如何在Android中制作自定义相机布局?

如何在Android中自定义相机布局?

如何在surfaceview中将Android相机更改为人像?

如何在 agora web 中将自定义对象传递给远程流

Android 三星 Galaxy S4 自定义相机预览失真