2

我正在寻找一种方法来提高我的 Lumia 920 手机的图像捕获率。我已经做了一些测试,在全分辨率(8 MP)下,图像捕获步骤似乎需要大约 1300 毫秒。我用 iPhone 5 进行了类似的测试,图像捕获步骤在全分辨率 (8 MP) 下在不到 400 毫秒内完成。这是一个很大的区别!这是我的代码:

public async Task TakePictures()
{
    IReadOnlyList<Windows.Foundation.Size> captureResolutions = PhotoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back);
    PhotoCaptureDevice camera = await PhotoCaptureDevice.OpenAsync(CameraSensorLocation.Back, captureResolutions[0]);

    CameraCaptureSequence captureSequence = camera.CreateCaptureSequence(1);
    MemoryStream captureStream = new MemoryStream();
    captureSequence.Frames[0].CaptureStream = captureStream.AsOutputStream();
    await camera.PrepareCaptureSequenceAsync(captureSequence);

    StorageFolder localFolder = ApplicationData.Current.LocalFolder;

    // take a bunch of images
    for (int i = 0; i < 20; i++)
    {
        TimeSpan t1 = DateTime.Now.TimeOfDay;
        await captureSequence.StartCaptureAsync();
        TimeSpan t2 = DateTime.Now.TimeOfDay;

        // could save file here

        Debug.WriteLine("image capture time = {0} ms", t2.TotalMilliseconds - t1.TotalMilliseconds);
    }
}

关于为什么该StartCaptureAsync()方法可能需要这么长时间的任何想法?我已经修复了 ISO、曝光时间、焦点和白平衡等参数,因此相机不需要为每次拍摄重新校准这些设置。

我想到的一件事是使用此处描述的本机代码 API ,但我对 Windows Phone 开发还很陌生,所以我对此知之甚少。

有任何想法吗?谢谢!

4

0 回答 0