jpeg_ghost_map — IMGFORENSICS compression op

Datenarten: image2dimages

Aufruf: import imgforensics; imgforensics.jpeg_ghost_map(image, qualities=None, block: 'int' = 16) -> 'list' (oder opsimgforensics.get("jpeg_ghost_map"))

Verwendung

JPEG-Geister (Farid 2009). Eine Folge von Rekompressions-Residuenkarten über einen Qualitätsdurchlauf. `images`.

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

ある領域が品質 `q0 で一度圧縮されていると、q = q0` で再圧縮したときに

その領域の差分が になる。画像全体が同じ `q0` なら谷は全面に出るが、

別の品質で圧縮された部分が貼られていると、**その領域だけ別の `q` で谷になる**。

返りは `len(qualities) 本の (H, W) 地図(block` 角の箱平均で平滑化した

二乗差)。谷の位置を画素ごとに読むのは :func:jpeg_ghost_quality

Pillow 必須(:class:ImportError)。理由は :func:error_level_map と同じ。

実測(`tests/test_imgforensics.py::test_jpeg_ghost_finds_the_pasted_quality`、

品質 92 の背景に品質 60 で圧縮した 64x64 を貼った 192x192、掃引 40..95 step 5):

貼った領域の谷は 品質 60(真値 60、誤差 0)、背景の谷は 品質 95

背景が 92 ではなく 95 になるのは掃引が 5 刻みで 92 を含まないからで、

谷は掃引した品質の中からしか出ない —— 刻みより細かい品質は読めない。

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

image_forensics_auditpy -3.11 examples/image_forensics_audit.py

Typkompatible Folge-Operatoren (nehmen images als Eingabe)

sensor_fingerprint · jpeg_ghost_quality

Gleiche Kategorie (compression)

error_level_map · jpeg_quality_estimate · jpeg_ghost_quality


*Provenance: imgforensics.py — IMGFORENSICS Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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