- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想从实时摄像头和图像中扫描二维码和条形码。我以前使用 ZBar 库来扫描代码。它不扫描特定类型的二维码和条形码。此外,Apple 的 AVFoundation 框架在从实时摄像头扫描代码时似乎更加快速和准确。
所以我不想用ZBar。为了扫描从图库中选取的图像的代码,我使用了 CIDetector。但似乎 CIDetector 无法从图像中扫描条形码。我搜索了整个堆栈流 CIDetector For other Barcode Types , Scanning barcode from UIImage natively (i.e., not using ZBar)
但我还没有找到使用 CIDetector 从图库中挑选的图像扫描条形码的方法。是否可以使用 CIDetector 从 UIImages 扫描条形码?
不推荐其他第三方库。我想使用苹果的默认框架来完成这项工作。
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
CIImage *img = [[CIImage alloc]initWithImage:image];
CIDetector* detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy:CIDetectorAccuracyHigh}];
if (detector)
{
NSArray* featuresR = [detector featuresInImage:img];
NSString* decodeR;
for (CIQRCodeFeature* featureR in featuresR)
{
NSLog(@"decode %@ ",featureR.messageString);
decodeR = featureR.messageString;
[self showAlertWithTitle:@"Success" withMessage:decodeR];
return;
}
[self showAlertWithTitle:@"Error" withMessage:@"Invalid Image"];
}
}
最佳答案
到目前为止,Apple 的 AVFoundation Framework 还没有提供扫描从图像库中选取的条形码的方法。
所以我通过使用 AVFoundation 框架在实时相机中扫描二维码和条码解决了我的问题,而当用户从图库中拍摄照片时,我使用 ZBar 框架扫描二维码和条码。
关于ios - 使用 CIDetector 扫描条码(一维和二维),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43784009/
我正在按照 PCL 文档的教程计算 2D 凸包 see here . 我有一片云和一些指数,将它们投影到具有给定系数的平面上,然后计算凸包。这是代码: PointCloud::Ptr tmpInlie
我想使用模拟退火在某个预定义的区间内找到单变量多项式函数的局部最小值。我也想尝试找到二次函数的全局最小值。 像这样的无导数算法不是解决问题的最佳方法,因此仅供学习。 虽然算法本身非常简单,但我不确定如
我正在寻找任意值的 2 维和 3 维索引的快捷方式,我知道这适用于给定数组 a[] #define a(i,j,k) a[(i)*span*span+(j)*span+(k)] #define b(i
我有一个形状为 [12, 8, 5, 5] 的 numpy 数组。我想修改每个元素的第 3 维和第 4 维的值。 例如 import numpy as np x = np.zeros((12, 80,
我是一名优秀的程序员,十分优秀!