Java 在BuffereImage上计算哈希的最佳实践是什么?

Java 在BuffereImage上计算哈希的最佳实践是什么?,java,hash,bufferedimage,Java,Hash,Bufferedimage,我正在开发一个处理图像的程序,如果底层OCR检测到图像颠倒,可以翻转图像。 然而,OCR输出在边界框方面并非100%可靠,因此有时会错误地检测到发票倒置。。。永远 我需要防止这种情况:文件在翻转后不再具有唯一标识符,在翻转两次后,我再也看不到它们是同一个文件 那么,从BufferedImages创建散列的最佳做法或可接受的做法是什么呢。我假设每次读取同一个文件时,它也会为buffereImage中的每个像素生成相同的RGB值 我可以自己实现一些简单的算法,获取每个像素的RGB,然后计算哈希/校验

我正在开发一个处理图像的程序,如果底层OCR检测到图像颠倒,可以翻转图像。
然而,OCR输出在边界框方面并非100%可靠,因此有时会错误地检测到发票倒置。。。永远

我需要防止这种情况:文件在翻转后不再具有唯一标识符,在翻转两次后,我再也看不到它们是同一个文件

那么,从
BufferedImage
s创建散列的最佳做法或可接受的做法是什么呢。我假设每次读取同一个文件时,它也会为
buffereImage
中的每个像素生成相同的RGB值


我可以自己实现一些简单的算法,获取每个像素的RGB,然后计算哈希/校验和。然而,我不认为这是一个正确的方法,最好怎么做呢?

生成一个哈希将循环所有字节;如果你必须检查图像是否相等,为什么不比较实际像素本身呢?@Gimby,因为我忘了添加,它需要存储在数据库中,因此首选相对较小的大小。那么你能不能不简单地存储哪些图像是彼此的副本?我坚持你只是想知道哪些图像是相等的,哈希是一个技术解决方案,你试图结婚。这也是一个困难的问题,因为您需要一个保证唯一的哈希。@Gimby如果哈希不可靠,那么我可以试试。。。但这并不容易。一个文件的处理过程如下:
random.pdf
->
random.tiff
->
1000.tiff
->
1000翻转。tiff
->
1001.tiff
1001翻转。tiff->
1002.tiff
。这是一种重命名序列。我并没有说散列不可靠,但像MD5这样的普通散列并不是100%无冲突的。