PictureCallback 在“onPictureTaken”中获取字节 [] 数据,但它与我在 CameraView 中看到的图像不匹配。

Posted

技术标签:

【中文标题】PictureCallback 在“onPictureTaken”中获取字节 [] 数据,但它与我在 CameraView 中看到的图像不匹配。【英文标题】:PictureCallback gets byte[] data in 'onPictureTaken' but it doesn't match the image I see in CameraView. 【发布时间】:2014-08-31 02:19:23 【问题描述】:

我在我的 android 应用程序中使用 opencv 人脸检测。我面临的问题如下。我实现'PictureCallback'的类在'onPictureTaken'中获取字节[]数据,但它与我在CameraView中看到的图像不匹配。图片是从右边剪下来的。

我在简单的 ImageView 中显示接收到的位图。

注意:这与我的 ImageView 或 XML 布局无关。因为我可以用我保存在 sdcard 上的图像来验证问题。

如果有人能在这方面帮助我,我将不胜感激。无法弄清楚我在这里做错了什么。

谢谢 问候

【问题讨论】:

【参考方案1】:

Android 相机有两个独立的设置:previewSizepictureSize。它们也可能具有不同的纵横比。例如。

previewSize=1920x1080
pictureSize=4200x2800

相机不会扭曲图像,它会裁剪它。

如果您想在拍摄的照片中保持与取景器屏幕上相同的视野,您应该为两者选择相同的纵横比。即使这样也不能保证捕捉将保持完全相同的视野(例如,由于焦点调整)。

请注意,您必须选择相机支持的预览尺寸和图片尺寸。 Android API 包括 getSupportedPictureSizes()getSupportedPreviewSizes()

【讨论】:

以上是关于PictureCallback 在“onPictureTaken”中获取字节 [] 数据,但它与我在 CameraView 中看到的图像不匹配。的主要内容,如果未能解决你的问题,请参考以下文章

Android中相机拍照

如何在 Android 中的相机捕获图像上设置实时帧

如何将拍摄的照片保存到特定文件夹? [复制]

调用 takePicture() 时出现不同输入数据大小问题的 Android Camera JpegPictureCallback

分配的变量引用在哪里,在堆栈中还是在堆中?

NOIP 2015 & SDOI 2016 Round1 & CTSC 2016 & SDOI2016 Round2游记