java - 相机预览给出灰色图像

标签 java android opencv

我正在使用 android sdk 相机开发 android 应用程序。在相机预览中,我需要帧内容,所以我使用 PreviewCallback 返回字节数组中的数据,现在我的问题是将数据保存在 mat 对象中,mat 返回灰色图像:

public void onPreviewFrame(byte[] data, Camera camera) {
    Mat src = new Mat(previewSize.height, previewSize.width, CvType.CV_8U, new Scalar(255));
    src.put(0, 0, data);
    Highgui.imwrite("/mnt/sdcard/1.jpg", src);
}

任何人都可以帮助我生成 argb 图像

注意:我在预览图像格式中使用 NV21。

最佳答案

改为这样做:

Mat src = new Mat(previewSize.height, previewSize.width, CvType.CV_8UC3);

如果它不起作用,则意味着您的 data 已经是灰色的,因此您必须在代码中的某处将其设置为灰色。

关于java - 相机预览给出灰色图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14376301/

相关文章:

java - Mockito 修改方法行为

java - 获取/返回MongoDb中新插入或新修改的文​​档(使用java驱动程序)

android - 限制分享android应用apk

python - 如何根据图像上旋转矩形的坐标制作蒙版?

java - maven命令行-插件配置

java - 如何将字符串参数传递到 Android XML 文件中?

android - 跨市场应用内计费

android - Item Decorator 每次调用都会增加额外的空间,如何处理?

python - 在棋盘 OpenCV 中检测正方形

java - OpenCV-Java:VideoCapture读取框架与USB摄像机卡在一起