A Go library for perceptual image hashing, supporting average, difference, and perception hashing algorithms.
goimagehash is a Go library that implements perceptual image hashing algorithms, allowing developers to generate unique fingerprints for images. It solves the problem of efficiently detecting similar or duplicate images by computing hashes that remain consistent across minor modifications like resizing or format changes.
Go developers working on image processing, computer vision, or content management systems that require duplicate image detection or similarity search.
Developers choose goimagehash for its straightforward API, support for multiple hashing algorithms (average, difference, perception), and performance optimizations, making it a reliable choice for image comparison tasks in Go applications.
Go Perceptual image hashing package
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Implements average, difference, and perception hashing, providing flexibility for different accuracy and robustness needs, as shown in the usage examples and algorithm citations.
Release notes highlight specific enhancements, such as reduced perception hash creation times in v1.0.1 and performance boosts in v1.1.0, ensuring efficient hash computation.
Includes Dump and Load methods for hash objects, enabling easy storage and transmission, demonstrated with bufio readers and writers in the code snippet.
Offers extended APIs like ExtAverageHash with customizable width and height parameters, allowing fine-tuning of hash sensitivity and size for specific use cases.
Wavelet hashing is marked as TODO in the README, indicating a missing algorithm that limits options for developers seeking that specific method.
v1.0.0 introduced incompatible changes with previous versions, as noted in release notes, which can disrupt existing projects and require significant migration effort.
Requires users to decode images externally using libraries like jpeg.Decode before hashing, adding extra steps compared to libraries with integrated image loading.