reid from https://github.com/michuanhaohao/reid-strong-baseline
zhangmeng
2020-01-17 f7c4a3cfd07adede3308f8d9d3d7315427d90a7c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// 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_BLOCK_MEAN_HASH_HPP
#define OPENCV_BLOCK_MEAN_HASH_HPP
 
#include "img_hash_base.hpp"
 
namespace cv {
namespace img_hash {
 
//! @addtogroup img_hash
//! @{
 
enum BlockMeanHashMode
{
    BLOCK_MEAN_HASH_MODE_0 = 0, //!< use fewer block and generate 16*16/8 uchar hash value
    BLOCK_MEAN_HASH_MODE_1 = 1, //!< use block blocks(step sizes/2), generate 31*31/8 + 1 uchar hash value
};
 
/** @brief Image hash based on block mean.
 
See @cite zauner2010implementation for details.
*/
class CV_EXPORTS_W BlockMeanHash : public ImgHashBase
{
public:
    /** @brief Create BlockMeanHash object
        @param mode
    */
    CV_WRAP void setMode(int mode);
    CV_WRAP std::vector<double> getMean() const;
    CV_WRAP static Ptr<BlockMeanHash> create(int mode = BLOCK_MEAN_HASH_MODE_0);
protected:
    BlockMeanHash() {}
};
 
/** @brief Computes block mean hash of the input image
    @param inputArr input image want to compute hash value, type should be CV_8UC4, CV_8UC3 or CV_8UC1.
    @param outputArr Hash value of input, it will contain 16 hex decimal number, return type is CV_8U
    @param mode
*/
CV_EXPORTS_W void blockMeanHash(cv::InputArray inputArr,
                                cv::OutputArray outputArr,
                                int mode = BLOCK_MEAN_HASH_MODE_0);
 
//! @}
 
}} // cv::img_hash::
 
#endif // OPENCV_BLOCK_MEAN_HASH_HPP