【发布时间】:2013-10-24 15:28:30
【问题描述】:
我目前正在调整 ImageSnap 的一些内部结构,尝试进行临时修改,以便即时拍摄实时摄像机图像的快照。我注意到图像被调整大小,不考虑纵横比,并将问题追溯到以下行:
CVImageBufferRef frame;
// obtain frame
verbose("frame is %d x %d px\n", (int)CVPixelBufferGetWidth(frame),
(int)CVPixelBufferGetHeight(frame));
CIImage *ciimg = [CIImage imageWithCVImageBuffer:frame];
verbose("CIImage has %d x %d px\n", (int)[ciimg extent].size.width,
(int)[ciimg extent].size.height);
至少对于我正在使用的一个给定设备,这些行的输出是
frame is 1920 x 1080 px
CIImage has 1888 x 1062 px
显然图像已调整大小,尽管我没有看到代码的任何部分要求调整大小。这是从哪里来的,更重要的是,我该如何预防?
我正在使用以下文档,但在其中找不到提示:
编辑:据我所知,没有缩放,而是进行了裁剪,这是由于 干净的光圈 设置mentioned in the Core Video Programming Guide。所以现在的问题是如何将这个干净的光圈设置为全帧尺寸,或者如何避免转换考虑到这一点。
【问题讨论】:
标签: objective-c macos core-image core-video