您可以使用OpenCV库。可以在Java中使用。请遵循http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html
关于图像比较,您可以在此处看到另一个有用的答案: 检查图像与OpenCV的相似性
0
您可以使用OpenCV库。可以在Java中使用。请遵循http://docs.opencv.org/doc/tutorials/introduction/desktop_java/java_dev_intro.html
关于图像比较,您可以在此处看到另一个有用的答案: 检查图像与OpenCV的相似性
0
我认为这更多是关于性能,然后是图像比较本身,答案是以这种方式编写的,因此如果您需要比较本身的帮助,请给我评论...
为每个图像创建简化的直方图
假设每个通道8个值,每个强度级别限制为4位。这将导致每个图像3*8*4=3*32
位
排序图像
取上述直方图并将其视为一个数字,然后按升序或降序排序A
组的图像
匹配A
和B
分组图像
现在相应的图像应具有相似的直方图,因此从未排序的B
组(带水印)中获取图像,对A
组中所有最接近的匹配项(原始)进行bin搜索 ,然后将更多更鲁棒的方法与选定的图像(而不是5000
)进行比较。
如果来自A
组的图像已经匹配,则添加标志
因此您可以忽略第3号项目符号中已经匹配的图像,以提高速度
[笔记]
还有其他改进方法,例如使用感知哈希算法
0
我大约有5000张带有水印的图像,以及5000张没有水印的相同图像。每组图像的文件名都不以任何方式相互关联。我正在寻找Java中最好的API,可以用来将每个带有水印的图像与其非带水印的图像配对。