| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 
							- // This file is part of OpenCV project.
 
- // It is subject to the license terms in the LICENSE file found in the top-level directory
 
- // of this distribution and at http://opencv.org/license.html.
 
- #ifndef OPENCV_IMG_HASH_H
 
- #define OPENCV_IMG_HASH_H
 
- #include "opencv2/img_hash/average_hash.hpp"
 
- #include "opencv2/img_hash/block_mean_hash.hpp"
 
- #include "opencv2/img_hash/color_moment_hash.hpp"
 
- #include "opencv2/img_hash/marr_hildreth_hash.hpp"
 
- #include "opencv2/img_hash/phash.hpp"
 
- #include "opencv2/img_hash/radial_variance_hash.hpp"
 
- /**
 
- @defgroup img_hash The module brings implementations of different image hashing algorithms.
 
- Provide algorithms to extract the hash of images and fast way to figure out most similar images in
 
- huge data set.
 
- Namespace for all functions is cv::img_hash.
 
- ### Supported Algorithms
 
- - Average hash (also called Different hash)
 
- - PHash (also called Perceptual hash)
 
- - Marr Hildreth Hash
 
- - Radial Variance Hash
 
- - Block Mean Hash (modes 0 and 1)
 
- - Color Moment Hash (this is the one and only hash algorithm resist to rotation attack(-90~90 degree))
 
- You can study more about image hashing from following paper and websites:
 
- - "Implementation and benchmarking of perceptual image hash functions" @cite zauner2010implementation
 
- - "Looks Like It" @cite lookslikeit
 
- ### Code Example
 
- @include samples/hash_samples.cpp
 
- ### Performance under different attacks
 
- 
 
- ### Speed comparison with PHash library (100 images from ukbench)
 
- 
 
- 
 
- As you can see, hash computation speed of img_hash module outperform [PHash library](http://www.phash.org/) a lot.
 
- PS : I do not list out the comparison of Average hash, PHash and Color Moment hash, because I cannot
 
- find them in PHash.
 
- ### Motivation
 
- Collects useful image hash algorithms into opencv, so we do not need to rewrite them by ourselves
 
- again and again or rely on another 3rd party library(ex : PHash library). BOVW or correlation
 
- matching are good and robust, but they are very slow compare with image hash, if you need to deal
 
- with large scale CBIR(content based image retrieval) problem, image hash is a more reasonable
 
- solution.
 
- ### More info
 
- You can learn more about img_hash modules from following links, these links show you how to find
 
- similar image from ukbench dataset, provide thorough benchmark of different attacks(contrast, blur,
 
- noise(gaussion,pepper and salt), jpeg compression, watermark, resize).
 
- * [Introduction to image hash module of opencv](http://qtandopencv.blogspot.my/2016/06/introduction-to-image-hash-module-of.html)
 
- * [Speed up image hashing of opencv(img_hash) and introduce color moment hash](http://qtandopencv.blogspot.my/2016/06/speed-up-image-hashing-of-opencvimghash.html)
 
- ### Contributors
 
- Tham Ngap Wei, thamngapwei@gmail.com
 
- */
 
- #endif // OPENCV_IMG_HASH_H
 
 
  |