我在我正在使用的小程序上使用Google Cloud Vision API for Python。该功能正在运行,我得到了OCR结果,但我需要格式化这些结果才能使用它们。
这是功能:
# Call to OCR API
def detect_text_uri(uri):
"""Detects text in the file located in Google Cloud Storage or on the Web.
"""
client = vision.ImageAnnotatorClient()
image = types.Image()
image.source.image_uri = uri
response = client.text_detection(image=image)
texts = response.text_annotations
for text in texts:
textdescription = (" "+ text.description )
return textdescription
我特别需要逐行切割文本,并在开头添加四个空格,最后添加一个换行符,但此时这只适用于第一行,其余部分作为单行返回斑点。
我一直在检查官方文档,但没有真正了解API的响应格式。
答案 0 :(得分:6)
你几乎就在那里。由于您希望逐行对文本进行切片,而不是循环显示文本注释,请尝试获取直接的' 描述'来自谷歌愿景的回应,如下所示。
def parse_image(image_path=None):
"""
Parse the image using Google Cloud Vision API, Detects "document" features in an image
:param image_path: path of the image
:return: text content
:rtype: str
"""
client = vision.ImageAnnotatorClient()
response = client.text_detection(image=open(image_path, 'rb'))
text = response.text_annotations
del response # to clean-up the system memory
return text[0].description
上述函数返回一个字符串,其中包含图片中的内容,其中的行以" \ n"
分隔现在,您可以添加前缀&每条线都需要后缀。
image_content = parse_image(image_path="path\to\image")
my_formatted_text = ""
for line in image_content.split("\n"):
my_formatted_text += " " + line + "\n"
my_formatted_text
是您需要的文字。