描述
算子smallest_rectangle2
决定了一个区域的最小包围矩形,也即,所有包含这个区域的矩形中面积最小的那个。计算出了这个矩形的中心,倾斜度和两个半径。矩形的计算是基于区域中像素的中心坐标的。
在文档的这一章中(Region/Features),你可以找到一个对于区域与他们最小包围矩形的长度和旋转角度之间不同的图片说明。
区域的最小包围矩形。注意计算是基于区域像素的中心坐标的。
这个算子用在,例如,需要找到几个区域的位置(例如:矩形纸上打印的文字或者在矩形打印中(对齐的行))。用这样一种方式来选择smallest_rectangle2
的参数:它们可以直接作为算子disp_rectangle2
和gen_rectangle2
的输入。
如果Region中有大于一个区域,结果会存储在一个元组中,元组中值的序号与输入的区域的序号相一致。如果输入的是空的区域,没有做其他设置的话(见set_system
),所有的参数值都是0.0。
参数
Regions(输入的object参数)
需要检测的区域
Row(输出的control参数)
中心位置所在的行号
Column(输出的control参数)
中心位置所在的列号
Phi(输出的control参数)
包围矩形的旋转角度(弧度制)
\(- \pi/2 <\) Phi 且 Phi \(≤ \pi/2\)
Length1(输出的control参数)
包围矩形的第一半径(长度的一半)
Length1 ≥ 0.0
Length2(输出的control参数)
包围矩形的第二半径(宽度的一半)
Length2 ≥ 0.0 且 Length2 ≤ Length1
笔记:
输出参数中的旋转角度指的是什么角度呢?
这里,以矩形的长边为x轴,短边为y轴,要得到包围矩形,需要绕x轴逆时针旋转的角度,如图所示:
此处不讨论到底是绕着哪个点转的,只指出是哪个角度。