我正在编写一个程序,使用 Microsoft 计算机视觉从图像中读取文本。然后将文本行存储在字符串中以供稍后使用。
我已经完成了我的项目的这一部分,如果我的图像只有一行文本,它就可以正常工作。
但是有时图像上的文本位于多个单独的行中 - 这就是我遇到麻烦的地方。
当只有一行文本时,我的代码工作正常,但是当图像有多行文本时,我尝试存储的字符串只能从图像中读取最后一行。
这是我的代码:
if read_result.status == OperationStatusCodes.succeeded:
for text_result in read_result.analyze_result.read_results:
for line in text_result.lines:
line_str = line.text
print(f"Line string: ",line_str)
upload_title_str = line_str
print(f" Upload Title String: {(upload_title_str)}")
我希望所有行都在一条线上,然后我的 upload_title_str 为 - line_str1+line_str2+line_str3
我尝试过不同的 .joins 和追加、+= 运算符等。
我想我错过了一些基本的东西,但在盯着这个几个小时后,我就是不明白。
有什么建议吗?
谢谢!
我能够通过以下方式解决这个问题:
for line in text_result.lines:
line_str = line_str + line.text
然后将我打印 upload_title_str 的“级别”移动到外循环缩进级别。
有时您只需将目光移开一点就能看到明显的东西!
谢谢!