features op• Data kinds: image → feature
• Call: fullseye.apply(img, "effective_bit_depth", a=0.5, b=0.5) (the 2-D model is one image plus two scalar knobs a,b∈[0,1])

*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.*
*Knob a does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*
*Knob b does not change the output (measured: identical at 0.1 / 0.5 / 0.9).*
> This operator's description has not been translated yet. The original text follows as it is.
画像が実際に使っているビット数を推定して `[0,1]` に写して返す(feature)。
`8 ビットの器に入っていても、中身が 6` ビット相当しかないことはよくある ——
低ビットのセンサを引き伸ばした、一度 JPEG を通した、ガンマを掛けた、など。
ここでは占有している階調の実際の間隔から実効ビット数を推定する:
出現した画素値を並べ、隣り合う値の差の最頻値を刻み `Δ` とみて
`bits = log2(1 + 1/Δ)。返り値は bits / 16 (a/b` は未使用)。
適用条件と外れ方: (1) ★画素数が上限を決める。階調がほぼ連続(浮動小数の
まま処理した画像)では、最小の刻みは「値が N 個あるときの平均間隔 ~1/N」なので、
推定は `log2(N)` 付近で頭打ちになる —— 128x128(N=16384)の連続画像で実測
13.7 bit。16 に飽和するわけではないので、**「これ以上は測れない」線を
画素数から先に引いておくこと**(小さな切り抜きで測ると低く出る)。(2) 非線形な変換(ガンマ・対数)を通った後は
刻みが場所によって違うので、最頻値は「代表的な刻み」であって一様な刻みではない。
(3) ディザが掛かっている画像では階調が埋まるので、実効ビット数は高く出る ——
それは「情報として何ビット分あるか」ではなく「何段使っているか」の答え。
• gallery2d_features 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.
effective_bit_depth 0.50 0.50
▸ Load this pipeline · Load & run
• gallery2d_features — py -3.11 examples/gallery2d_features.py
feature as input)features)blob_count · area_frac · count_contours · total_length · vol_count · sk_euler · sk_entropy_feat · sk_blur_effect
*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.