我使用iOS 11的視覺框架來檢測圖像上的文字。文本已成功檢測到,但我們如何獲取檢測到的文本。iOS 11視覺框架 - 從圖像中提取文字
10
A
回答
-4
這將返回一個覆蓋圖像與矩形框中檢測到的文本
以下是完整的Xcode項目 https://github.com/cyruslok/iOS11-Vision-Framework-Demo
希望這是有幫助的
// 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
你有沒有讀過這個問題? – Tech
0
不完全是欺騙,但類似:Converting a Vision VNTextObservation to a String
您需要使用CoreML或其他庫來p執行OCR(SwiftOCR等)
相關問題
- 1. 視覺框架條碼檢測iOS 11
- 2. 使用視覺框架從圖像中進行對象檢測
- 3. 從圖像中提取或分析視覺信息
- 4. iOS 11使用視覺框架VNDetectRectanglesRequest做不精確的對象檢測?
- 5. 從自然圖像中提取文字
- 6. 視覺框架與ARkit和CoreML
- 7. iOS將視頻幀提取爲圖像
- 8. 如何從視頻中提取圖像?
- 9. AS3 - 從圖像中提取文本
- 10. ios視頻框架
- 11. 圓形框架中的圖像iOS
- 12. 從.plist文件中提取.png圖像
- 13. 從單詞圖像中提取字符
- 14. 從圖像中提取字符
- 15. 如何從qt中的視頻文件中提取圖像?
- 16. 從iOS中獲取圖像
- 17. 如何從iOS中的照片中檢測出框架圖像
- 18. 從PDF中提取圖像
- 19. 從文本框中提取數字
- 20. 從文本框中提取數字
- 21. 從文件夾中提取圖像
- 22. 從HL7文件中提取圖像
- 23. 從圖像中提取文本
- 24. 從圖像文件中提取座標
- 25. 從圖像中提取文本
- 26. 從圖像文件中提取屬性
- 27. 從Excel文檔中提取圖像
- 28. 從MJPG文件中提取圖像幀
- 29. android:從圖像中提取文本
- 30. Vb.net從圖像中提取文本
您現在需要使用CoreML併發送要讀取的區域 –
@Alex已獲取要檢測的區域。需要解決方案來讀取檢測到的區域。 – Abhishek
[將視覺VNTextObservation轉換爲字符串]的可能重複(https://stackoverflow.com/questions/44533148/converting-a-vision-vntextobservation-to-a-string) –