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

*图为在 128×128 合成输入上实际运行的输出。左为输入,右为输出。点云以俯视散点显示(亮度 = z),一维序列为折线,体数据为沿 z 的最大值投影,视频为中间帧,复数图像为幅值;无法成像的返回值直接显示数值。*
扫描旋钮 a(0.1 / 0.5 / 0.9,另一旋钮取默认):
▸ cooc_feature_matrix: 旋钮 a 扫描 (文档网站)
扫描旋钮 b(0.1 / 0.5 / 0.9,另一旋钮取默认):
▸ cooc_feature_matrix: 旋钮 b 扫描 (文档网站)
从灰度共生矩阵(GLCM,skimage.feature.graycomatrix,量化为 16 阶,距离 1+3*a,角度 0°)计算 Haralick 纹理特征 energy(角二阶矩,即矩阵值的集中程度=纹理均匀性)。相当于 HALCON 的 cooc_feature_matrix(Calculate gray value features from a co-occurrence matrix.)(HALCON 可同时返回多个特征、多个角度,但这里简化为固定 energy、角度 0°)。
a 在 1~4 的范围内调节取共生的像素间距。★b >= 0.75 时对 0/45/90/135 度 4 个方向取平均(默认 b=0.5 仍与以往一样只用 0 度,因此现有结果连 1 个比特都不会变)。
旋转实拍纹理(brick / grass / gravel)进行测量(poc_real_texture_invariance 的第 6 节)可知,是否有效取决于距离 a:
• 首先,增大 a 会使材质之间的分辨率本身崩溃(0.0328 -> 0.0122,降为 2.7 分之 1)。各向异性的 brick 的波动幅度膨胀到分辨率的 0.30 -> 3.13 倍。
• 4 方向平均对各向同性的材质在短中距离上有效(grass 0.23 -> 0.12,gravel 0.20 -> 0.11)。
• 对各向异性的 brick 只在距离 4 时有效(3.13 -> 1.54),在距离 1 时反而变差(0.30 -> 0.56)。
• 到了距离 4,连各向同性的 grass 也不再改善(0.17 -> 0.19)—— 分辨率崩溃之后,即使平均也无法挽回。
在长距离下使用时,应在施加平均之前确认材质是否仍能区分。另外,用“混淆次数”来衡量会对步骤(插值阶数、裁切方式、角度步长)敏感,比值(波动幅度 / 分辨率)更稳定。
• gallery2d_texture_freq 族使用指南
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者、年份)与用途见上面的族使用指南。
下面的程序已确认可以运行(与图相同的输入)。在 Studio 帮助中,此块会变成按钮,可当场加载并运行。
cooc_feature_matrix 0.50 0.50
• gallery2d_texture_freq — py -3.11 examples/gallery2d_texture_freq.py
• poc_real_texture_invariance — py -3.11 examples/poc_real_texture_invariance.py
feature 作为输入)texture)std_filter · local_bimodality · local_std · scale_select_std · bootstrap_std_error · structure_tensor_orientation · structure_tensor_coherence · gabor
*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.