有谁知道pytesseract的image_to_data、image_to_osd方法的输出含义?
Does anyone knows the meaning of output of image_to_data, image_to_osd methods of pytesseract?
我正在尝试使用 pytesseract 从图像中提取数据。该模块有 image_to_data、image_to_osd 方法。这两种方法提供了大量信息(TextLineOrder、WritingDirection、ScriptDetection、Orientation 等...)作为输出。
下图是image_to_data方法的输出。这些列的值(级别,block_num,par_num,line_num,word_num)是什么意思?
image_to_osd 的输出如下所示。这里面的每一个词是什么意思?
页码:0
以度为单位的方向:0
旋转:0
定向置信度:16.47
脚本:拉丁语
脚本置信度:4.00
我参考了文档,但没有获得有关这些参数的任何信息。
列级别:
- 没有 block_num、paragraph_num、line_num、word_num
的项目
- 包含 block_num 且不包含 paragraph_num、line_num、word_num
的项目
- 包含 block_num、paragraph_num 且不包含 line_num、word_num
的项目
- 包含 block_num、paragraph_num、line_num 且不包含 word_num
的项目
- 所有这些数字的项目
列 block_num:检测到的文本或项目的块号
列 par_num:检测到的文本或项目的段落编号
列 line_num:检测到的文本或项目的行号
列 word_num: 检测到的文本或项目的字数
但上面所有4列都是interconnected.If该项目来自新行然后字数将从0开始重新计数,它不会从上一行的最后一个字数继续。 line_num、par_num、block_num 也是如此。
查看下图以供参考。
第一列:block_num
第二列:par_num
第 3 列:line_num
第 4 列:word_num
my_image.jpg
例如,在下面的代码中用image_to_data测试my_image.jpg,我们会得到类似results.png的结果。
results.png
level = 1/2/3/4/5,当前物品等级
page_num:当前项目的页索引。在大多数情况下,一张图片只有一页。
block_num:当前物品的方块物品。当 tesseract OCR
图像,它会根据PSM将图像分割成几个块
参数和一些规则。一行中的单词通常在一个块中。
par_num:当前项目的段落索引。这是页面
分析结果。 line_num:当前项目的行索引。这是
页面分析结果。 word_num: 一个块中的单词索引。
line_num:当前项目的行索引。这是
页面分析结果。
word_num: 一个块中的单词索引。
left/top/width/height:top-left坐标和宽度
当前单词的高度。
conf:当前单词的置信度,
范围是-1~100.. -1 表示这里没有文本。这
100 是最高值。
text:文字ocr结果。
image_to_osd结果的含义:
页码:当前项目的页索引。在大多数情况下,一张图片只有一页。
Orientation in degrees:当前图片中的文字相对于其阅读角度的顺时针旋转角度,取值范围为[0, 270, 180, 90]。
Rotate:记录当前图片中文字要转换为可读的角度,相对于当前图片顺时针旋转,取值范围为[0, 270, 180 , 90]。与 [以度为单位的方向] 值互补。
Orientation confidence:Indicates 当前 [Orientation in degrees] 和 [Rotate] 检测值的置信度。置信度越大,测试结果越可信,但目前还没有找到对其取值范围的解释。
Script:当前图片中文字的编码类型。
Script confidence:文字编码类型在当前图片中的置信度。
从 pytesseract 导入输出
导入 pytesseract
导入 cv2
image = cv2.imread("my_image.jpg")
#swap color channel ordering from BGR (OpenCV’s default) to RGB (compatible with Tesseract and pytesseract).
# By default OpenCV stores images in BGR format and since pytesseract assumes RGB format,
# we need to convert from BGR to RGB format/mode:
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pytesseract.pytesseract.tesseract_cmd = r'C:\mypath\tesseract.exe'
custom_config = r'-c tessedit_char_whitelist=0123456789 --psm 6'
results = pytesseract.image_to_data(rgb, output_type=Output.DICT,lang='eng',config=custom_config)
print(results)
我正在尝试使用 pytesseract 从图像中提取数据。该模块有 image_to_data、image_to_osd 方法。这两种方法提供了大量信息(TextLineOrder、WritingDirection、ScriptDetection、Orientation 等...)作为输出。
下图是image_to_data方法的输出。这些列的值(级别,block_num,par_num,line_num,word_num)是什么意思?
image_to_osd 的输出如下所示。这里面的每一个词是什么意思?
页码:0 以度为单位的方向:0 旋转:0 定向置信度:16.47 脚本:拉丁语 脚本置信度:4.00
我参考了文档,但没有获得有关这些参数的任何信息。
列级别:
- 没有 block_num、paragraph_num、line_num、word_num 的项目
- 包含 block_num 且不包含 paragraph_num、line_num、word_num 的项目
- 包含 block_num、paragraph_num 且不包含 line_num、word_num 的项目
- 包含 block_num、paragraph_num、line_num 且不包含 word_num 的项目
- 所有这些数字的项目
列 block_num:检测到的文本或项目的块号
列 par_num:检测到的文本或项目的段落编号
列 line_num:检测到的文本或项目的行号
列 word_num: 检测到的文本或项目的字数
但上面所有4列都是interconnected.If该项目来自新行然后字数将从0开始重新计数,它不会从上一行的最后一个字数继续。 line_num、par_num、block_num 也是如此。
查看下图以供参考。
第一列:block_num
第二列:par_num
第 3 列:line_num
第 4 列:word_num
my_image.jpg
例如,在下面的代码中用image_to_data测试my_image.jpg,我们会得到类似results.png的结果。
results.png
level = 1/2/3/4/5,当前物品等级
page_num:当前项目的页索引。在大多数情况下,一张图片只有一页。
block_num:当前物品的方块物品。当 tesseract OCR 图像,它会根据PSM将图像分割成几个块 参数和一些规则。一行中的单词通常在一个块中。
par_num:当前项目的段落索引。这是页面 分析结果。 line_num:当前项目的行索引。这是 页面分析结果。 word_num: 一个块中的单词索引。
line_num:当前项目的行索引。这是 页面分析结果。
word_num: 一个块中的单词索引。
left/top/width/height:top-left坐标和宽度 当前单词的高度。
conf:当前单词的置信度, 范围是-1~100.. -1 表示这里没有文本。这 100 是最高值。
text:文字ocr结果。
image_to_osd结果的含义:
页码:当前项目的页索引。在大多数情况下,一张图片只有一页。
Orientation in degrees:当前图片中的文字相对于其阅读角度的顺时针旋转角度,取值范围为[0, 270, 180, 90]。
Rotate:记录当前图片中文字要转换为可读的角度,相对于当前图片顺时针旋转,取值范围为[0, 270, 180 , 90]。与 [以度为单位的方向] 值互补。
Orientation confidence:Indicates 当前 [Orientation in degrees] 和 [Rotate] 检测值的置信度。置信度越大,测试结果越可信,但目前还没有找到对其取值范围的解释。
Script:当前图片中文字的编码类型。
Script confidence:文字编码类型在当前图片中的置信度。
从 pytesseract 导入输出 导入 pytesseract 导入 cv2
image = cv2.imread("my_image.jpg")
#swap color channel ordering from BGR (OpenCV’s default) to RGB (compatible with Tesseract and pytesseract).
# By default OpenCV stores images in BGR format and since pytesseract assumes RGB format,
# we need to convert from BGR to RGB format/mode:
rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
pytesseract.pytesseract.tesseract_cmd = r'C:\mypath\tesseract.exe'
custom_config = r'-c tessedit_char_whitelist=0123456789 --psm 6'
results = pytesseract.image_to_data(rgb, output_type=Output.DICT,lang='eng',config=custom_config)
print(results)