我试图开发Android的应用程序,我需要得到具有尽可能高从相机的分辨率非压缩的图片。 我试图takePicture的rawCallback和postviewCallback,但他们没有工作。
现在,我使用VideoCapture的OpenCV(2.4版本)很努力,但我卡在默认960x720,这是可怜我需要什么; 我的手机,三星Galaxy S3,能够提供,理论上,最多8Mpx(3,264×2,448的照片,和1920×1080的视频,根据维基百科)。 VideoCapture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH /高度,一些数),使相机返回一个黑色图像,据我已经找到。
有没有什么办法,以获得更高的分辨率,无论是通过OpenCV的或与Android API,无需压缩?
我真的很抱歉,如果这已问过; 我一直在寻找了几天,我都一无所获。
感谢您的时间!
编辑:虽然不正是我一直在问,我发现有一种方法可以做一些非常相似:如果设置OnPreviewCallback的摄像头,采用setPreviewCallback,你得到从相机的原始图像数据(至少在S3我的工作)。 我离开这里万一有人发现它在将来有用。
编辑:的部分解决方案将在下面的答案说明。 总结一下,
vc.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, desiredFrameWidth);
vc.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, desiredFrameHeight);
在一定条件下工作; 请参阅下面的更多细节。