如何使用JNI + OpenCV + NDK获取原始的android相机传感器图像数据?

我正在为基于Camera2Raw的应用程序使用camera2 api

mRawImageReader = ImageReader.newInstance(largestRaw.getWidth(), 
       largestRaw.getHeight(),ImageFormat.RAW_SENSOR, /*maxImages*/

image来自ImageReader.OnImageAvailableListener,而不是保存DNG文件,而是将其字节数组传递给我的本机opencv函数进行处理:

int w = image.getWidth();
int h = image.getHeight();
ByteBuffer buffer = planes[0].getBuffer();
byte[] data = new byte[buffer.remaining()];
buffer.get(data);
addShot(w, h, data);
image.close();

和C ++函数:

JNIEXPORT jboolean JNICALL addShot(JNIEnv* env, jobject obj, jint width, jint height, jbyteArray p_data)
   {
       jbyte* _p_data= env->GetByteArrayElements(p_data, 0);
       Mat srcBGR(height, width, CV_8UC3);
       Mat mdata(height, width, CV_8UC3, (unsigned char *)_p_data);
//        Mat tmp_mat= imdecode(mdata,1);
       cvtColor(mdata, srcBGR, CV_RGB2BGR);
       env->ReleaseByteArrayElements(p_data, _p_data, 0);
   }

第一的。为了确保,我正在尝试将c另存为JPEG。但是结果有很多绿色。

我认为我的C ++代码中缺少部分。

有人可以帮忙吗?

埃迪·塔尔瓦拉(Eddy Talvala)

处理Bayer RAW数据并非易事-它是传感器上像素值的原始读出,并且您需要大量额外的元数据和处理过程才能将其转换为可见图像。如果您不知道该怎么做,我不建议您尝试-您可以插入Adobe DNG SDKlibraw之类的库

您确定不只是想要YUV_420_888数据,该数据已处理但未压缩?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何顺序获取传感器数据?

来自分类Dev

如何在 OpenCV 中使用 Orbbec Astra 深度传感器?

来自分类Dev

Android-如何根据传感器名称获取传感器详细信息?

来自分类Dev

如何使用OpenCV对齐多个相机图像

来自分类Dev

MRTG使用脚本获取传感器数据

来自分类Dev

使用传感器数据的Android智能电源管理

来自分类Dev

OpenCV Mat处理Android JNI

来自分类Dev

如何使用OpenCV图像遮罩

来自分类Dev

Android如何设置传感器延迟?

来自分类Dev

如何注销多个传感器的android

来自分类Dev

如何使用xamarin表格获取传感器值?

来自分类Dev

使用OpenCV分割图像

来自分类Dev

如何在Unity中使用Android光传感器

来自分类Dev

如何使用Kotlin Coroutines处理Android传感器事件?

来自分类Dev

我如何从假装成微型电话的USB加速度传感器获取数据?

来自分类Dev

如何在Android Wear模拟器上模拟来自心率传感器的数据?

来自分类Dev

使用C ++从乐高EV3传感器获取数据?

来自分类Dev

如何使用OpenCV显示PGM图像

来自分类Dev

如何使用OpenCV删除图像中的文本

来自分类Dev

如何使用OpenCV计算图像的结构张量

来自分类Dev

如何使用opencv在图像上添加边缘?

来自分类Dev

如何使用OpenCV Python显示图像的轮廓?

来自分类Dev

OpenCV的 - 如何使用floodFill与RGB图像?

来自分类Dev

如何使用OpenCV删除图像的背景?

来自分类Dev

如何使用OpenCV比较2组图像

来自分类Dev

如何使用OpenCV计算图像的结构张量

来自分类Dev

如何使用opencv在图像上产生眩光

来自分类Dev

如何使用opencv python从底部裁剪图像

来自分类Dev

如何打开 GPS 传感器并从 Android M 中的服务获取位置?

Related 相关文章

热门标签

归档