-
Notifications
You must be signed in to change notification settings - Fork 84
/
CHANGELOG
202 lines (154 loc) · 8.42 KB
/
CHANGELOG
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
## [1.0.0] Distributed via maven central under new groupId - 20.06.2021
### Added
- ability to handle transparent images
### Changed
- package changed from com.github.kilianB to dev.brachtendorf.jimagehash
- Move Examples to new repository https://github.com/KilianB/JImageHash-Examples
- package is now distributed via maven central
- moved AlgorithmBenchmarker to example package
### Fixed
- Rot Average Hash now correctly computes the same hash for consecutive uses. (Algorithm Id changed! Not compatible with previously created hashes)
### Updated
- bump h2 dependency
- bump maven build dependencies
----------------------
## [3.0.0] - 16.01.2019
### Added
- Categorical Matcher. (Clustering matcher)
- Weighted Categorical Matcher (much slower but takes into account more or less important bits)
- Fuzzy hashes
- Haar Wavelet Hash
- Bloom filter for exact hash lookup
- KMeans clustering
- Many additional interfaces and abstract classes
- Warning to perceptive hash that a high res might trigger JTransforms thread pool leading to a delayed jvm exit without intervention.
- create a persistent and in memory version of common matchers.
- a persistent package allowing matchers to be serialized
- RandomForstMatcher for testing purposes
- usage of codacy to decrease technical debt
- Experimental annotation to mark experimental code
#### 9 Gag duplication example
- optional jsoup dependency
### Changed
- Move from float to double precision for algorithm settings.
- Change ImageMatcher.getAlgorithms() to return a unmodifiable map instead of the underlaying collection
- Renamed TestData to LabeledImage
- Make h2 dependency optional. (extract h2 into a separate class)
- Result removed getValue and getDistance
- Increased performance of binary tree by 50% by cutting debug path information.
- Swap out BigInteger for HashBuilder to increase hash construction performance. see https://github.com/KilianB/JImageHash/issues/22
This will increase performance by a great deal (magnitude) for big hash resolutions and a little bit for smaller once. We don't need to do an empty pass to compute the bit resolution anymore.
The bit order flipped with the first added bit being the rightmost bit instead of the leftmost.
- moved TestData class to individual class to allow usage in other parts of the program.
- AColorHash AKernelHash and Median hash now inherit from AverageHash reducing duplicate code
- Make Hash , fuzzy hash BinaryTree,Node,Leaf Serializable
- change packet structure to better reflect persistent and in memory matchers
- shorted readme and put information into wiki
### Fixed
- AverageKernelHash now correctly computes it's hash based on the filtered luminocity compare to the average value instead
of the filtered value compared to the unfiltered value. Now it works more closely in line with aHash This will in turn make hashes created by v 3.0.0 incompatible with older hashes
- a bug which resulted in hashes containing only 0's added to a binary tree creating an additional node
### Removed
- removed unused optional import javax.xml.bind
- GoogleInMemoryDownload exmaple. While useful the returned results are worse as they are not optimized giving the user a false sense of the capability of this library.
- Removed get default matcher. Every problem requires individual algorithms, it's a hassle to keep every matcher supported and simply does not make sense
## [2.1.1] 25.12.2018
### Updated
- Bump Utility code version to 1.5.3 to support custom and exotic image color models.
## [2.1.0] 3.12.2018
### Changed
- DatabaseImageMatcher now checks if an image with the id already exists before adding the image.
- refactor database image matcher tests to fail on sql exception rather than printing stack traces
## [2.0.2] 2.12.2018
### Changed
- Bump version of compiler (3.8.0)
- Bum version of source and javadoc (3.0.1) maven plugin
- Bump version of Surefire plugin (3.0.0-M1)
- Specify html 5 as default javadoc version.
### Added
Database image matcher:
create default matcher with string constructors
- add Images String batch operation.
- add Images with files string batch operatio
- getAllMatchingImages. Method to retrieve all images which matches any other image in the entire database
- getMatchingImagesWithinDistance utility method to circumvent threshold settings.
### Fixed
- unused imports removed in multiple files
- ignore multiple deprecation warnings were applicable
## [2.0.1] 30.11.2018
### Fixed
- Update to UtilityCode 1.5.1 which excludes test resources which got added accidentally due to mvn:clean not being executed before deployment
## [2.0.0] 29.11.2018
#### Note
- Development of version 2.0.0 was a bit all over the place. Commits are out of order and the changelog wasn't accuratly tracked.
Starting now a more tracable documentation and commit behaviour will be enforced.
### Fixed
- Breaking change
- rename hemming to hamming distance
- rename getElementsWithinHemmingDistance to getElementsWithinHammingDistance in binaryTree
- Bumped dependency of github.kilianB.UtilityCode to 1.5.0 utilizing the fix in getScaledImage instance which
would fall back to the old jdk 1 awt implementation decreasing speed by a factor of 600. As well as supporting multiple image types
- removed unnecessary computation of grayscale image in difference hash
- difference hash now computes the padding byte correctly
- Typo in hashing algorithm "bitResoluation" -> "bitResolution". Since this is a protected field
which most likely is used in any derived hashing algorithm this is classified as a breaking change!
- Due to a major version bump the dHash will be revisited and it's implementation
might change to not waste one bit. This will lead to all created hashes so far to be invalidated. The algorithm id of dHash will be updated
accordingly.
### Changed
- Update JUnit to 5.3.1
- The hashing algorithm was refactored and now has to implement a different method signature returning a big integer instead of a hash object.
In preparation to drop the no information 1 padding bit
- Starting with version 2 hashes now use Luminosity as given by YCrCb instead of interpolated grayscale values.
- The bitResolution argument in hashing algorithms now follows the contract that the resulting hash has at least the number of bits specified.. All hash algorithms are updated to follow the earlier mentioned rule.
Additionally the precomputation step of images now allows a 1 pixel deviation between width and height to allow for closer matching images.
- Hash classes migrate to use FastPixel access speeding up creation of higher key hashes by magnitude
- test cases to reflect changes
- the algorithm id of each algorithm is altered to reflect incompatibility.
- default image matchers have different thresholds due to changed key precisions returned by default algorithm settings
### Added
- Minor javadocs addition
- dependency on UtilityCode com.github.kilianB
- Hashing algorithms are serializable
- Rotational Invariant hasher (RotPHash, Rotational)
- WIP - Hog-Hash
- Database image matcher
- Algorithm Benchmarker
- add equals and hashcode to image matcher
- ImageMatcher results now also reference the normalized distance
- CummulativeInMemoryMatcher
- getBit and getBitUnsafe to Hash.java to retrieve individual bits without needing to access the underlying big integer object.
- added tests
- Add AverageColorHash
- multiple differen hog variants
- kernels and filters
## [1.0.2] - 24.9.2018
### Added
- .editorconfig file for github aesthetics
### Changed
- added xml header to pom allowing for valid resolve via maven
## [1.0.1] - 4.8.2018
### Changed
- removed example dependencies from compiled repository jars
## [1.0.0] - 4.8.2018
- Initial version pushed to Bintray and JCenter
### Changed
- Updated javadocs to comply with maven javadoc plugin
- Smaller bugfixed mainly for the examples
## [0.1.0] - 3.8.2018
### Added
- BinaryTree class to save & compare precomputed hashes
- UnitTests for hash algorithms and basic matchers
- Examples
- Extensive gui example
- Algorithm identifiers preventing mismatching hashes to be compared
- InMemoryImageMatcher to match a batch of images
- Added more default presets for the default matchers.
### Changed
- Preparation for maven distribution. Changed package structure
- Using a dedicated Hash class instead of a BigInteger to represent hash results
- Renamed ImageMatcher to SingleImagematcher
## [0.0.8] -
### Added
- MIT License
- usage of changelog