本文共 691 字,大约阅读时间需要 2 分钟。
我正在为
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);
在某些条件下工作;详情请见下文.
转载地址:https://blog.csdn.net/weixin_40002224/article/details/117288407 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!