segment_characters[1]引用自 HALCON-19.05-Progress/doc/html/reference/operators/segment_characters.html,以下内容为机器翻译,以及个人理解,仅供参考。
¶名字
segment_characters
— 分割图像的给定区域中的字符。
¶签名
**segment_characters ** (Region, Image : ImageForeground, RegionForeground : Method, EliminateLines, DotPrint, StrokeWidth, CharWidth, CharHeight, ThresholdOffset, Contrast : UsedThreshold)
¶描述
此运算符用于对给定字符进行分段*Region
的Image
.这Region
仅用于减少工作区域。分段的字符返回RegionForeground
*.
提供了两种不同的方法来检测字符。所有分割方法都假定文本比背景更暗。如果不是这种情况,请将图像反转为invert_image
.
参数*Method
*确定文本分割的算法。可能的值为
‘local_contrast_best’
此方法提取本地与背景不同的文本。因此,它适用于照明不均匀的图像。文本边框的增强,可以更准确地确定文本的轮廓。如果背景具有高度纹理,则特别有用。参数
Contrast
定义最小对比度,即符号和背景之间的最小灰度值差异。‘local_auto_shape’
最小对比度是自动估计的,从而减少非常小的区域的数量。此方法特别适用于嘈杂的图像。参数*
ThresholdOffset
可用于调整阈值。设 g(x,y) 为输入中位置 (x,y) 处的灰度值Image
*.阈值条件由以下因素确定:.
选择*EliminateLines
如果字符的提取受到相对于文本行的水平或垂直行的干扰,并将其值设置为“true”。消除受最大值的影响CharWidth
*和最大值CharHeight
.有关详细信息,请参阅这些参数的说明。
DotPrint
:如果应读取点印,则应设置为“true”,否则应设置为“false”。
StrokeWidth
:指定文本的描边宽度。它用于计算内部使用的掩码大小以确定字符。此掩模大小也受参数的影响DotPrint
,平均值CharWidth
和平均值CharHeight
.
CharWidth
:这可以是最多包含三个值的元组。第一个值是字符的平均宽度。第二个是字符的最小宽度,第三个是字符的最大宽度。如果未设置最小值或等于 -1,则操作员根据平均值自动设置这些值CharWidth
.如果未设置最大值,情况也是如此。一些例子:
[10]将平均字符宽度设置为10,最小值和最大值由算子计算。
[10,-1,20] 将平均字符宽度设置为 10,最小值由系统计算,最大值设置为 20。
[10,5,20] 将平均字符宽度设置为 10,最小值设置为 5,最大值设置为 20。
CharHeight
:这可以是最多包含三个值的元组。第一个值是字符的平均高度。第二个是字符的最小高度,第三个是字符的最大高度。如果未设置最小值或等于 -1,则操作员根据平均值自动设置这些值CharHeight
.如果未设置最大值,情况也是如此。一些例子:
[10] 将平均字符高度设置为 10,最小值和最大值由算子计算。
[10,-1,20] 将平均字符高度设置为 10,最小值由系统计算,最大值设置为 20。
[10,5,20]这会将平均字符高度设置为 10,最小值设置为 5,最大值设置为 20。
ThresholdOffset
:此参数可用于调整阈值,该阈值在分割方法时使用*“local_auto_shape”*被选中。
Contrast
:定义文本和背景之间的最小对比度。如果分段方法,则使用此参数*“local_contrast_best”*已选中。
UsedThreshold
:执行后,此参数返回用于对字符进行分段的阈值。
ImageForeground
返回内部用于分割的图像。
¶执行信息
- 多线程类型:重入(与非独占运算符并行运行)。
- 多线程范围:全局(可以从任何线程调用)。
- 在元组级别自动并行化。
¶参数
Region
(input_object) region(-array) →
object
图像中文本行所在的区域。
Image
(input_object)singlechannelimage →
object (byte / uint2)
输入图像。
ImageForeground
(output_object)image(-array) →
object (byte / uint2)
用于分割的图像。
RegionForeground
(output_object)singlechannelregion(-array) →
object
字符的区域。
Method
(input_control)string →
(string)
对字符进行分段的方法。
默认值: ‘local_auto_shape’
值列表:‘local_auto_shape’,‘local_contrast_best’
EliminateLines
(input_control)string →
(string)
消除水平和垂直线?
默认值: ‘false’
值列表:‘false’, ‘true’
DotPrint
(input_control)string →
(string)
是否应检测点打印字符?
默认值: ‘false’
值列表:‘false’, ‘true’
StrokeWidth
(input_control)string →
(string)
字符的描边宽度。
默认值: ‘medium’
值列表: ‘bold’, ‘light’, ‘medium’, ‘ultra_light’
CharWidth
(input_control)integer-array →
(integer)
字符的宽度。
**默认值:**25
典型值范围:1 ≤ CharWidth
限制:CharWidth >= 1
CharHeight
(input_control)integer →
(integer)
字符的高度。
**默认值:**25
典型值范围:1 ≤ CharHeight
限制:CharHeight >= 1
ThresholdOffset
(input_control)integer →
(integer)
用于调整分段的值。
**默认值:**0
Contrast
(input_control)integer →
(integer)
文本和背景之间的最小灰度值差异。
**默认值:**10
典型值范围:1 ≤ Contrast
限制:Contrast >= 1
UsedThreshold
(output_control)integer(-array) →
(integer)
用于对字符进行分段的阈值。
¶示例(HDevelop)
1 | for Index := 1 to 5 by 1 |
¶结果
如果输入参数设置正确,则运算符返回值 2(H_MSG_TRUE)。否则将引发异常。segment_characters
¶可能的前身
text_line_orientation
¶可能的继任者
select_characters
,connection
¶选择
threshold
¶模块
Foundation
segment_characters(算子) ↩︎