ImageHash 开源项目使用教程
1. 项目的目录结构及介绍
ImageHash 项目的目录结构如下:
ImageHash/
├── .github/
│ └── workflows/
│ └── ci.yml
├── src/
│ └── ImageHash/
│ ├── __init__.py
│ ├── average_hash.py
│ ├── color_hash.py
│ ├── difference_hash.py
│ ├── image_hash.py
│ ├── perceptual_hash.py
│ └── wavelet_hash.py
├── tests/
│ ├── __init__.py
│ ├── test_average_hash.py
│ ├── test_color_hash.py
│ ├── test_difference_hash.py
│ ├── test_perceptual_hash.py
│ └── test_wavelet_hash.py
├── .gitignore
├── LICENSE
├── README.md
├── pyproject.toml
└── setup.cfg
目录结构介绍
- .github/workflows/: 包含 GitHub Actions 的 CI/CD 配置文件。
- src/ImageHash/: 包含 ImageHash 库的核心代码文件。
- init.py: 模块初始化文件。
- average_hash.py: 实现平均哈希算法的文件。
- color_hash.py: 实现颜色哈希算法的文件。
- difference_hash.py: 实现差异哈希算法的文件。
- image_hash.py: 图像哈希算法的基类文件。
- perceptual_hash.py: 实现感知哈希算法的文件。
- wavelet_hash.py: 实现小波哈希算法的文件。
- tests/: 包含测试代码文件。
- .gitignore: Git 忽略文件配置。
- LICENSE: 项目许可证文件。
- README.md: 项目说明文档。
- pyproject.toml: 项目构建配置文件。
- setup.cfg: 项目安装配置文件。
2. 项目的启动文件介绍
ImageHash 项目的启动文件是 src/ImageHash/__init__.py
。这个文件负责初始化 ImageHash 模块,并导出主要的哈希算法类。
启动文件内容概览
from .image_hash import ImageHash
from .average_hash import AverageHash
from .color_hash import ColorHash
from .difference_hash import DifferenceHash
from .perceptual_hash import PerceptualHash
from .wavelet_hash import WaveletHash
__all__ = [
'ImageHash',
'AverageHash',
'ColorHash',
'DifferenceHash',
'PerceptualHash',
'WaveletHash'
]
启动文件功能
- 导入并初始化各个哈希算法类。
- 定义模块的公共接口。
3. 项目的配置文件介绍
ImageHash 项目的配置文件主要包括 pyproject.toml
和 setup.cfg
。
pyproject.toml
pyproject.toml
文件用于定义项目的构建系统和其他配置。
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "ImageHash"
version = "3.5.0"
description = "A image hashing library written in Python."
authors = [
{ name="Coen Meulenkamp", email="coen.meulenkamp@gmail.com" }
]
license = { file="LICENSE" }
readme = "README.md"
requires-python = ">=3.6"
dependencies = [
"Pillow>=8.0.0"
]
setup.cfg
setup.cfg
文件用于定义项目的安装配置。
[metadata]
name = ImageHash
version = 3.5.0
description = A image hashing library written in Python.
long_description = file: README.md
long_description_content_type = text/markdown
author = Coen Meulenkamp
author_email = coen.meulenkamp@gmail.com
license = MIT
license_files = LICENSE
url = https://github.com/coenm/Image