texture op• Data kinds: image → feature
• Call: fullseye.apply(img, "cooc_feature_matrix", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])
• HALCON equivalent: cooc_feature_matrix (the HALCON reference is a useful guide to its meaning and parameters)

*The figure is the actual output on a synthetic 128×128 input. Left: input, right: output. Point clouds are drawn as a top-down scatter (brightness = z), 1-D series as a line plot, volumes as the maximum-intensity projection along z, videos as the middle frame, complex images as magnitude; return values that are not pictures are shown as the values themselves.*
Sweeping knob a (0.1 / 0.5 / 0.9, the other knob at its default):
▸ cooc_feature_matrix: knob a sweep (docs site)
Sweeping knob b (0.1 / 0.5 / 0.9, the other knob at its default):
▸ cooc_feature_matrix: knob b sweep (docs site)
Computes the Haralick texture feature `energy (angular second moment, i.e., how concentrated the matrix values are = texture uniformity) from a gray-level co-occurrence matrix (GLCM, skimage.feature.graycomatrix, quantized to 16 levels, distance 1+3*a, angle 0 degrees). Equivalent to HALCON's cooc_feature_matrix` (Calculate gray value features from a co-occurrence matrix.) (HALCON can return multiple features and multiple angles simultaneously, but this is simplified to energy at a fixed 0-degree angle).
> The detailed description below is the original text — the summary and the headings are translated.
`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 family guide
• Sample-data catalog (download URLs / licences) — 2-D uses skimage.data (BSD/public domain) plus synthetic images; 3-D lists download URLs for real data sources (Stanford, PDS, …).
• Operator provenance and references — the sources of the research/methods this op family came from.
• The canonical algorithm (author, year) and its uses are named in the family usage guide above.
The program below has been verified to run (same input as the figure). In Studio's help this block becomes buttons that load and run it on the spot.
cooc_feature_matrix 0.50 0.50
▸ Load this pipeline · Load & run
• 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 as input)texture)std_filter · local_bimodality · local_std · scale_select_std · bootstrap_std_error · structure_tensor_orientation · structure_tensor_coherence · gabor
*Provenance: ops.py — 2D operator registry. This per-op note is generated by tools/opdocs.py md (do not hand-edit).*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.