快速查找视觉上相似的图像
libpuzzle的Python项目详细描述
为python实现libpuzzle。
它的目的是快速找到视觉上相似的图像(gif,png,jpg),甚至 如果它们已调整大小、重新压缩、重新着色或稍加修改。
示例应用程序:
- 在照片库中查找重复图像
- 图像分类
- 图像搜索服务
- 中庸(用户在论坛、维基、博客等上发送的图片)。图片 类似于之前被禁止的其他图片 主持人。
库依赖于gd库来加载位图图片。
在Debian服务器上,安装将是:
$ apt -y install libpuzzle-dev libgd2-xpm-dev $ pip install libpuzzle
用法:
from libpuzzle import Puzzle, SIMILARITY_THRESHOLD puzzle = Puzzle() sign1 = puzzle.from_filename('img1.jpg') sign2 = puzzle.from_filename('img2.png') distance = sign1.distance(sign2) if distance <= SIMILARITY_THRESHOLD: print('images are propably the same')
API:
SIMILARITY_THRESHOLD SIMILARITY_HIGH_THRESHOLD SIMILARITY_LOW_THRESHOLD SIMILARITY_LOWER_THRESHOLD class Puzzle: max_width # max_height # lambdas # noise_cutoff # p_ratio # contrast_barrier_for_cropping # max_cropping_ratio # autocrop # from_filename(filename) -> Signature # hydrate Signature from filename from_signature(sign) -> Signature # hydrate Signature from value from_compressed_signature(sign) -> Signature # hydrate Signature from compressed value class Signature: # Implements signature value # the value compressed # the compressed value distance(signature) -> float # distance between 2 signatures exception PuzzleError: # Raise when something went wrong