compression op• 数据种类:image2d → images
• 调用: import fullseye as fs; fs.ledger.jpeg_ghost_map(image, qualities=None, block: 'int' = 16) -> 'list'(要直接调用实现,import imgforensics; imgforensics.jpeg_ghost_map(image, qualities=None, block: 'int' = 16) -> 'list';从台账取用则 opsimgforensics.get("jpeg_ghost_map"))
JPEG 幽灵(Farid 2009)。扫描质量得到的重压缩残差图序列。images。
若某区域曾以质量 q0 压缩过一次,则以 q = q0 再压缩时,该区域的差分会成为谷。整幅图像都是同一 q0 时谷会出现在全图,但若贴入了以别的质量压缩的部分,只有该区域会在别的 q 处成为谷。
返回 len(qualities) 张 (H, W) 的图(用 block 见方的盒式平均平滑后的
平方差)。逐像素读取谷的位置的是 jpeg_ghost_quality。
必须有 Pillow(ImportError)。理由与 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。背景是 95 而不是 92,是因为扫掠以 5 为步长,不包含 92,谷只会出现在扫掠过的质量之中 —— 比步长更细的质量无法读出。
• 示例数据目录(下载 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
images 作为输入)sensor_fingerprint · jpeg_ghost_quality
compression)error_level_map · jpeg_quality_estimate · jpeg_ghost_quality
*Provenance: imgforensics.py — IMGFORENSICS 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.