region op• 数据种类:region → region
• 调用:fullseye.apply(img, "r2_smallest_rectangle2", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])
• HALCON 对应:smallest_rectangle2(其含义与参数可参考 HALCON 手册)

*图为在 128×128 合成输入上实际运行的输出。左为输入,右为输出。点云以俯视散点显示(亮度 = z),一维序列为折线,体数据为沿 z 的最大值投影,视频为中间帧,复数图像为幅值;无法成像的返回值直接显示数值。*
*旋钮 a 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*
*旋钮 b 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*
阶段(前置算子 → 本算子,从左到右):
▸ r2_smallest_rectangle2: 处理阶段 (文档网站)
换别的图像(合成场景 / 照片 / 硬币。上排为输入,下排为对应输出。旋钮取默认):
▸ r2_smallest_rectangle2: 其他输入图像 (文档网站)
最小面积的有向外接矩形作为掩码(旋转卡壳)。
将包含区域全部前景像素的最小面积旋转矩形绘制为掩模。取前景坐标的凸包,以平行于凸包各边的方向构造外接矩形,并选出面积最小者(rotating calipers。利用了最小面积矩形必与凸包某一条边相接的性质)。内部表示为中心 (cy, cx)、长边 long_len、短边 short_len、长边方向 angle(在图像坐标 x=col, y=row 中测得的弧度)。
a 只将长边拉伸为 1 + 0.3*a 倍(a=0 时就是最小矩形本身,a=1 时长边为 1.3 倍。短边不变)。b 未使用。绘制时使用从中心出发的投影 |pu| <= long/2 + 0.5、|pv| <= short/2 + 0.5,为像素的扩展加上 0.5 像素的余量,因此输出必定包含输入区域。
返回值是与输入同形的 float64 0/1 掩模,没有前景时全为零。不返回角度或边长的数值。若有多个连通分量,则整体为 1 个矩形。前景为 1 个像素或位于一条直线上时会退化(点、线段),绘制结果是约 1 像素宽的细带。若轴平行即可,r2_smallest_rectangle1 更轻量。可用于查看细长零件方向的预处理,或通过与 r2_inner_rectangle1 的面积比判断矩形程度。
边界处理:将图像外部视为背景(0)(实测。tools/impl2/border_probe.py)。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
下面的程序已确认可以运行(与图相同的输入)。在 Studio 帮助中,此块会变成按钮,可当场加载并运行。
threshold 0.50 0.50 r2_smallest_rectangle2 0.50 0.50
• gallery2d_region — py -3.11 examples/gallery2d_region.py
region 作为输入)identity · reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small
region)reg_erode · reg_dilate · reg_open · reg_close · fill_holes · select_largest · remove_small · invert_region
*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.