fullseye

perceptual_hash — IMGFORENSICS hash op

使い方

知覚ハッシュ(perceptual hash)。bool の 1-D ビット列を返す。

mode:

"dct" 縮小 (hash_size * 4) 角 → 2-D DCT-II(直交)→ 左上 hash_size x hash_size を取り、DC を除いた中央値と比較。 Zauner 2010 の pHash と同じ手順。長さ hash_size**2 ビット。 "average" 縮小 hash_size 角 → 平均と比較(aHash)。同じ長さ。 "difference" 縮小 (hash_size, hash_size + 1)横に隣り合う画素の 大小を比較(dHash)。同じ長さで、平均輝度の変化に強い。

実測(tests/test_imgforensics.py が数で固定。256x256 の 1/f^1.6 画像、 hash_size=8 = 64 ビット。無関係な 2 枚の距離は dct 31.3 / average 34.2 / difference 32.6(20 対の平均。理論値は 32 = ビット長の半分)):

===================== ======== ========== ============ 変換 dct average difference ===================== ======== ========== ============ JPEG 品質 60 再圧縮 0 0 0 JPEG 品質 30 再圧縮 2 0 0 1/2 縮小 0 0 0 1/4 縮小 0 0 0 明るさ +0.1 0 0 0 左右反転 28 42 34 90 度回転 32 30 32 別の画像 28 40 34 ===================== ======== ========== ============

この op が言えないこと:

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(phash を入力に取れる)

hash_distance · watermark_embed · watermark_capacity

同カテゴリ(hash)

hash_distance


Provenance: imgforensics.py — IMGFORENSICS operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.