我正在研究Iphone应用程序 . 我正在使用OpenCV用相机拍照并将其用作UIImage .

为了拍照,我宣布了cvCapture

CvCapture * capture = cvCaptureFromCam(1200) //(1200 is to use the CV_CAP_AVFOUNDATION  from the AVFoundation framework)

然后我使用 cvQueryFrame(capture) 来获取图像 .

一切正常 .

现在我得到的图像分辨率是480X360 . 我想让图像更大 . 在对桌面应用程序进行研究和测试后,我发现我们可以使用它来设置捕获分辨率:

cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 1280);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 720);

然而,这不起作用,图像大小没有变化 .

在调用 cvSetCaptureProperty 之后我直接使用 cvGetCaptureProperty 来读取属性,以确保它们正在改变 . 但他们没有改变(我仍然把它们变成480X360) . 就像 cvSetCaptureProperty 没有正确设置属性 .

在使用开放式CV的桌面应用程序上,这些方法工作正常,分辨率也正确更改 . 我正在测试Iphone 4s btw .

知道为什么设置框架高度和宽度不起作用?

非常感谢您的帮助