Я пытаюсь обнаружить штрих-код на выбранном пользователем изображении. Я могу обнаружить QR-код с изображения, но не могу найти ничего, связанного со сканированием штрих-кода с изображения. Код, который я использую для обнаружения QR-кода на изображении, выглядит следующим образом:
func detectQRCode(_ image: UIImage?) -> [CIFeature]? {
if let image = image, let ciImage = CIImage.init(image: image){
var options: [String: Any]
let context = CIContext()
options = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
let qrDetector = CIDetector(ofType: CIDetectorTypeQRCode, context: context, options: options)
if ciImage.properties.keys.contains((kCGImagePropertyOrientation as String)){
options = [CIDetectorImageOrientation: ciImage.properties[(kCGImagePropertyOrientation as String)] ?? 1]
}else {
options = [CIDetectorImageOrientation: 1]
}
let features = qrDetector?.features(in: ciImage, options: options)
return features
}
return nil
}
Когда я захожу в документацию CIDetectorTypeQRCode
, там написано
/* Specifies a detector type for barcode detection. */
@available(iOS 8.0, *)
public let CIDetectorTypeQRCode: String
Хотя это QR-код, в документации говорится, что он также может обнаруживать штрих-код. Отлично. Но когда я использую ту же функцию для декодирования штрих-кода, она возвращает мне пустой массив функций. Даже если он вернет мне некоторые функции, как я смогу преобразовать его в альтернативу штрих-кода CIQRCodeFeature
? Я не вижу альтернативы штрих-коду в документации CIQRCodeFeature
. Я знаю, что это можно сделать с помощью ZBar SDK, но я стараюсь не использовать здесь сторонние библиотеки, или это обязательно для использования в этом отношении??.
Пожалуйста, помогите, большое спасибо.
CIDetectorTypeQRCode
будет обнаруживать только QR-коды. Единственные поддерживаемые типы можно найти в документации developer.apple.com/documentation/coreimage/cidetector а>. Если вы не хотите полагаться на сторонние библиотеки, вам нужно будет написатьCIDetector
самостоятельно, но я не могу сказать, насколько сложной будет эта попытка. - person jms   schedule 18.08.2019VNDetectBarcodesRequest
. - person rmaddy   schedule 18.08.2019CIRectangleFeature
поддерживается. Вам нужно будет написать собственную оболочку для обнаружения штрих-кода. Кажется, довольно интересное упражнение ^^ - person jms   schedule 18.08.2019