compression op• 数据种类:image2d → image2d
• 调用:import imgforensics; imgforensics.error_level_map(image, quality: 'int' = 90, normalize: 'bool' = True) -> 'np.ndarray'(或 opsimgforensics.get("error_level_map"))
ELA(误差水平分析)。给出按指定质量重压缩后差分的地图。`image2d`。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
Krawetz 2007。JPEG は 8x8 ブロックごとに量子化するので、一度圧縮された領域は
同じ品質で再圧縮しても誤差が小さく、後から貼られた / 描かれた領域は誤差が
大きく残る、という考え方に基づく。
`normalize=True`(既定)なら最大値で割って [0, 1] にする(見るため)。
`False` なら 8 bit 階調そのままの絶対誤差(数えるため)。
**Pillow が無ければ :class:ImportError。近似には落ちない。** DCT の量子化だけを
numpy で真似ると、符号化器の丸め・色空間変換・チャネル間引きが消えた *別物* に
なる。それを ELA と名乗ると、この族が潰そうとしている「もっともらしく間違う」を
自分でやることになる。
この地図が言えないこと(`tests/test_imgforensics.py` が数で固定。
256x256 の 1/f^1.6 画像の中央 64x64 に別画像を貼ったもの):
==================================== =============== =============== =========
元の画像 貼付部の ELA 背景の ELA 比
==================================== =============== =============== =========
無圧縮(一度も JPEG を通らない) 0.1966 0.1793 1.096
一度 JPEG 品質 75 を通した 0.1966 0.0401 4.898
==================================== =============== =============== =========
• 無圧縮 PNG では何も言えない。上の 1.096 倍は「貼った所と貼っていない所が
区別できない」という意味である。**ELA が意味を持つのは「元が JPEG」のとき
だけ**で、そのとき初めて 4.898 倍という差になる。
• よく言われる「ELA は高周波を追っているだけ」も、この画像では成り立たない ——
ELA と Sobel 勾配強度の相関は 0.003(無圧縮)/ 0.057(JPEG 済み)。
ELA は 8x8 ブロックの量子化残差を見ているので、勾配とは別のものを測っている。
それでも上の表のとおり 無圧縮では改竄を分離しない。「勾配の言い換えだから
駄目」なのではなく、比べる基準になる量子化履歴が無いから駄目である。
• 平坦な領域は圧縮しても誤差が出ないので、改竄されていても暗いままになる。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• 算法的正典(作者・年份)与用途见上面的族使用指南。
• image_forensics_audit — py -3.11 examples/image_forensics_audit.py
• poc_forensics_roc — py -3.11 examples/poc_forensics_roc.py
image2d 作为输入)perceptual_hash · fingerprint_correlate · jpeg_quality_estimate · jpeg_ghost_map · noise_inconsistency_map · copy_move_regions · watermark_embed · watermark_extract
compression)jpeg_quality_estimate · jpeg_ghost_map · jpeg_ghost_quality
*Provenance: imgforensics.py — IMGFORENSICS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.