gpt4 book ai didi

iphone - 在一个App中使用两个库访问iPhone相机

转载 作者:行者123 更新时间:2023-12-01 17:45:13 24 4
gpt4 key购买 nike

我的iOS应用程序应同时执行以下两项任务:

  • 使用ZBar SDK
  • 扫描QR标签
  • 使用QCAR SDK扫描增强现实标记。

  • 换句话说:我正在寻找被AR标记包围的QR标签。

    两项任务均应“实时”运行。我的第一个幼稚方法表明,将两个SDK组合到一个应用程序中会使第一个初始化的SDK在第二个SDK初始化时停止工作。

    有人有建议吗?谢谢。

    最佳答案

    我设法做到了。如果有人喜欢知道:

    QCAR仅适用于完整的摄像机访问权限。因此,必须按照其文档中所示对其进行初始化和启动。幸运的是,它提供了对处理后的相机图像的访问,作为原始RGB数据。我使用以下代码将原始数据转换为UIImage:

    QCAR::setFrameFormat(QCAR::GRAYSCALE, true);
    const QCAR::Image *image = state.getFrame().getImage(1); // 0: YUV, 1: Grayscale image
    const char *data = (const char *)image->getPixels();
    int width = image->getWidth(); int height = image->getHeight();

    CGColorSpace *colorSpace = CGColorSpaceCreateDeviceGray();
    CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault;
    CGDataProvider *provider = CGDataProviderCreateWithData(NULL, data, width*height, NULL);
    CGColorRenderingIntent intent = kCGRenderingIntentDefault;
    CGImageRef imageRef = CGImageCreate(width, height, 8, 8, width * 1, colorSpace, bitmapInfo, provider, NULL, NO, intent);
    myUIImage = [UIImage imageWithCGImage:imageRef];

    现在,您可以使用ZBar的ZBarImageScanner类,如下所示:
    ZBarImageScanner *imageScanner = [[ZBarImageScanner alloc] init];
    ZBarImage *image = [[ZBarImage alloc] initWithCGImage:myUIImage.CGImage];
    int result = [imageScanner scanImage:image];

    if (result > 0) {
    ZBarSymbolSet *symbols = imageScanner.results;
    for(ZBarSymbol *symbol in symbols) {
    NSLog(@"%@", symbol.data);
    }
    }

    关于iphone - 在一个App中使用两个库访问iPhone相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8311722/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com