- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我的“public void onPreviewFrame(byte[] data, Camera camera) { .... }”中 我想获取字节数组“数据”并将其传递给 JNI 并应用一些 OpenCV 过滤器,以便预览更改,但不返回。执行此操作的最佳方法是什么?
目前我只传递这样的bytearray:
JNIEXPORT jint JNICALL Java_example_jnitest_Lib_filterfunc
(JNIEnv * je, jclass jc, jbyteArray byteData){
try {
jbyte* _b_data= je->GetByteArrayElements(byteData, 0);
int height = base;
int width = base2;
Mat mdata(height, width, CV_8UC4, (unsigned char *)_b_data);
Mat myMat = imdecode(mdata,1);
je->ReleaseByteArrayElements(byteData, _b_data, 0);
return 1;
} catch(const exception& ex){
return 0;
}
}
在 Java 代码中:
public static native int filterfunc(byte[] byteData);
注意:目前返回值为 1,所以我希望将 bytearray 转换为 Mat Obejct 是可行的。但这不会更改预览,因为我不会将其改回字节数组。
最佳答案
I want to take the bytearray "data" and pass it to the JNI and apply some OpenCV filters so that the preview changes, without returning it.
不幸的是,这是不可能的。传递给 onPreviewFrame()
的字节数组只是预览帧的一个拷贝,您对其所做的任何更改都不会显示在预览中。您可以通过在 onPreviewFrame()
函数中修改 Java 中的字节数组作为测试来自行测试,您不会看到任何效果。
如果您想使用 OpenCV 更改预览帧数据并在预览窗口中查看结果,那么您需要将处理后的帧上传到 OpenGL 纹理,然后将其渲染到 GLSurfaceView。 , 使用 fragment 着色器转换 NV21 data到 RGB,或其他一些方法。简单地更改字节数组是行不通的。
有关更多信息,请参阅这些问题:
关于java - 如何通过JNI操作CameraPreview bytearray? (开放式简历),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30749232/
我在将示例 laravel 5.2 应用程序部署到 openshift 时遇到问题。我找到了这个quickstart在 github 上并尝试了下面列出的手动安装。 rhc app create la
我刚刚开始使用 OpenCV,我发现了 contourArea 函数的一些非常奇怪的行为。 看到这张图片。 它有三个不相连的区域,左侧是一组长笔划,顶部中心有一个点,最后是右侧的一个大方块。 当我运行
我经常发现自己尝试从数值变量+用户提供的一组范围创建分类变量。 例如,假设我有一个带有数值变量 df$V 的 data.frame并想创建一个新变量 df$VCAT这样: df$VCAT = 0 如果
启动 MXBean 时,我收到错误提示 Method SampleServiceMXBean.register 具有无法转换为开放类型的参数或返回类型。根据错误消息,很明显我的 MXBean 无法 c
大多数时候在 CUDA 或 OpenCL 程序中需要分支,例如: for (int i=0; i
我们有一个可能有用的自制框架实现基于 REST 的网络服务。 这是一个 .net c# 项目,用于 web 应用程序。 它的用途是:用动态内容内联替换模板“标签”。示例标签:{{recentposts
是否有 Java 中 SMB/CIFS 服务器的开放实现?我能找到的唯一实现是 Alfresco 的,但它不是开源的。 一个相关的问题:假设没有这样的实现,我很惊讶没有一个库提供甚至是 SMB 的一个
我已将我的应用程序从本地主机移至 OpenShift,发现 PostgreSQL 连接存在问题。我已经配置了pom.xml: org.postgresql postgresql
我正在尝试在 AWS ec2 实例上配置 SSL 证书,我遵循了以下步骤: 使用 ubuntu 操作系统在 ec2 上创建实例。 通过证书管理器在我的域上颁发证书 -> 例如:*.domains.co
我正在尝试在打开的模式上执行 jQuery 脚本,以便将其中一个字段转换为 jQuery UI Spinner。 我正在使用Angular UI中记录的opened promise 。 问题:jQue
有没有办法将服务帐户 secret 内容填充到环境变量中? 示例:当一个 pod 启动时,它包含一个 /var/run/secrets/kubernetes.io/secrets/serviceacc
我在 security 和 components/securitySchemes 中定义了我的身份验证。在Swagger documentation about response ,他们提供了这个例子
我是一名优秀的程序员,十分优秀!