如何使用OpenCV在Android中设置相机分辨率?

如何使用OpenCV在Android中设置相机分辨率?,第1张

概述我正在为 Android开发一个应用程序,我需要从相机获得尽可能高的分辨率的未压缩图片.我试过takePicture的rawCallback和postviewCallback,但是它们不工作. 现在我正在使用OpenCV(版本2.4)使用VideoCapture,但是我被困在默认的960×720中,这对我需要的是不好的;而根据维基百科的说法,三星Galaxy S3的手机在理论上可以提供高达8M的像 我正在为 Android开发一个应用程序,我需要从相机获得尽可能高的分辨率的未压缩图片.我试过takePicture的rawCallback和postvIEwCallback,但是它们不工作.

现在我正在使用OpenCV(版本2.4)使用VIDeoCapture,但是我被困在默认的960×720中,这对我需要的是不好的;而根据维基百科的说法,三星galaxy S3的手机在理论上可以提供高达8M的像素(3,264×2,448张照片,1,920×1080像素). VIDeoCapture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH / HEIGHT,一些数字)使相机返回一个黑色图像,就像我发现的那样.

有没有办法通过OpenCV或AndroID API获得更高的分辨率,而不压缩?

如果以前有人问过我真的很抱歉我一直在找几天,我什么也没找到.

感谢您的时间!

编辑:虽然不是我正在问的问题,但我发现有一种方法可以做一些非常相似的事情:如果您使用setPrevIEwCallback设置了相机的OnPrevIEwCallback,则可以从相机获取原始图像数据(至少在S3中我正在使用).我会把它留在这里,以防有人觉得今后有用.

编辑:在下面的答案中解释了部分解决方案.总结一下,

vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH,desiredFrameWIDth);vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT,desiredFrameHeight);

在某些条件下工作;详情请见下文.

解决方法 您必须通过致电 getSupportedPreviewSizes获得支持的相机预览功能.

之后,您可以使用方法setPreviewSize设置任何分辨率.最后不要忘记setParameters.实际上很多OpenCV AndroID的例子包含了这个信息(见sample3).

总结

以上是内存溢出为你收集整理的如何使用OpenCV在Android中设置相机分辨率?全部内容,希望文章能够帮你解决如何使用OpenCV在Android中设置相机分辨率?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1133040.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存