Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 使用Java对HD和SD图像进行图像比较_Image_Algorithm_Image Processing_Edge Detection - Fatal编程技术网

Image 使用Java对HD和SD图像进行图像比较

Image 使用Java对HD和SD图像进行图像比较,image,algorithm,image-processing,edge-detection,Image,Algorithm,Image Processing,Edge Detection,我有一个包含同一组图像的SD和HD版本的数据库。问题是他们的名字不同 例如,SD中的一朵花的图像具有名称greatflower.png,而同一朵花的HD版本具有名称bestflower.png 挑战在于找到它们之间的相似之处。我曾尝试将图像调整到相同的宽度和高度,然后逐像素比较,但结果并不准确。我只想在算法完成后,对一对图像进行比较,得到一个肯定或否定的答案 我的问题是,哪个java库或算法库将在HD和SD版本的图像之间执行完美的图像相似性分析 感谢大家:)首先,我要创建所有图像的颜色直方图(以

我有一个包含同一组图像的SD和HD版本的数据库。问题是他们的名字不同

例如,SD中的一朵花的图像具有名称
greatflower.png
,而同一朵花的HD版本具有名称
bestflower.png

挑战在于找到它们之间的相似之处。我曾尝试将图像调整到相同的宽度和高度,然后逐像素比较,但结果并不准确。我只想在算法完成后,对一对图像进行比较,得到一个肯定或否定的答案

我的问题是,哪个java库或算法库将在HD和SD版本的图像之间执行完美的图像相似性分析


感谢大家:)

首先,我要创建所有图像的颜色直方图(以减少颜色深度)。 然后,您可以使用直方图相似性来查找相同图像的候选对象


在第二步中,我会将两个图像调整为相同(相当小)的大小,然后逐像素进行比较,与颜色相关的公差很小。如果90%以上的像素非常相似,我会将图像分类为相同的。

如果有很多候选像素,用Java检查位图中的每个像素可能会非常慢。检查纵横比是否相似。然后,我将从两幅图像中提取100个点(从每幅图像上等距的10x10网格中),并对它们进行比较。如果RGB值均在10%以内,则表示两点“相同”。如果90%的点“相同”,则视为图像相同。这远不是万无一失的,但在计算上,每个图像只需要100次查找。它可能会工作得很好。将10x10更改为其他网格大小,以权衡性能和灵敏度。非常感谢,先生。您的建议在我的案例中起到了作用:)