Resimdeki metni algılamak için iOS 11'in vizyon çerçevesini kullanıyorum. Metinler başarıyla algılanıyor, ancak tespit edilen metni nasıl alabiliyoruz.iOS 11 Görsel çerçeve - Görüntüden metin çıkarımı
10
A
cevap
-4
Bu algılanan metnin İşte
üzerinde dikdörtgen kutu ile bindirme görüntüsüne dönecektir https://github.com/cyruslok/iOS11-Vision-Framework-Demo
o yararlıdır
// Text Detect
func textDetect(dectect_image:UIImage, display_image_view:UIImageView)->UIImage{
let handler:VNImageRequestHandler = VNImageRequestHandler.init(cgImage: (dectect_image.cgImage)!)
var result_img:UIImage = UIImage.init();
let request:VNDetectTextRectanglesRequest = VNDetectTextRectanglesRequest.init(completionHandler: { (request, error) in
if((error) != nil){
print("Got Error In Run Text Dectect Request");
}else{
result_img = self.drawRectangleForTextDectect(image: dectect_image,results: request.results as! Array<VNTextObservation>)
}
})
request.reportCharacterBoxes = true
do {
try handler.perform([request])
return result_img;
} catch {
return result_img;
}
}
func drawRectangleForTextDectect(image: UIImage, results:Array<VNTextObservation>) -> UIImage {
let renderer = UIGraphicsImageRenderer(size: image.size)
var t:CGAffineTransform = CGAffineTransform.identity;
t = t.scaledBy(x: image.size.width, y: -image.size.height);
t = t.translatedBy(x: 0, y: -1);
let img = renderer.image { ctx in
for item in results {
let TextObservation:VNTextObservation = item
ctx.cgContext.setFillColor(UIColor.clear.cgColor)
ctx.cgContext.setStrokeColor(UIColor.green.cgColor)
ctx.cgContext.setLineWidth(1)
ctx.cgContext.addRect(item.boundingBox.applying(t))
ctx.cgContext.drawPath(using: .fillStroke)
for item_2 in TextObservation.characterBoxes!{
let RectangleObservation:VNRectangleObservation = item_2
ctx.cgContext.setFillColor(UIColor.clear.cgColor)
ctx.cgContext.setStrokeColor(UIColor.red.cgColor)
ctx.cgContext.setLineWidth(1)
ctx.cgContext.addRect(RectangleObservation.boundingBox.applying(t))
ctx.cgContext.drawPath(using: .fillStroke)
}
}
}
return img
}
+2
Soruyu okudun mu? – Tech
0
bir dupe ama benzer Tam Umut dolu xcode projeyi olduğunu : Converting a Vision VNTextObservation to a String
CoreML veya başka bir kitaplık kullanmanız gerekir. oform OCR (SwiftOCR, vb.)
Şimdi CoreML'yi kullanmanız ve okunacak bölgeyi göndermeniz gerekiyor –
@Alex Zaten algılanan bölgeleri almak. Tespit edilen bölgeyi okumak için çözüm lazım. – Abhishek
Olası bir kopyası [VNTextObservation'ın bir String'e Dönüştürülmesi] (https://stackoverflow.com/questions/44533148/converting-a-vision-vntextobservation-to-a-string) –