我想比较两个图像文件的某些平等标准。
是否有可用的工具可以比较两个图像文件达到一定百分比? 如果我们传递2张图像,它应该能够通过大约'x'%
来判断图像是否匹配答案 0 :(得分:2)
这可能不是您正在寻找的,但实际上写出用于图像处理和分析的代码非常有用。这是在Java中:
//Image percentage match
public float getPercentMatch(String imageFile1, String imageFile2) {
//Set how close a pixel has to be for a match, pixel deviation
int pd = 3;
try {
//get height, width and image from first file
File input1 = new File(imageFile1);
image1 = ImageIO.read(input1);
width1 = image1.getWidth();
height1 = image1.getHeight();
//Do the same for the second one
File input2 = new File(imageFile2);
image2 = ImageIO.read(input2);
width2 = image2.getWidth();
height2 = image2.getHeight();
int matchCount = 0;
//Make sure they're the same height. You could also choose to use the
//smaller picture for dimensions
if (height1 != height2 || width1 != width2) {return 0.0;}
//Iterate over each pixel
for(int i=0; i<height1; i++){
for(int j=0; j<width1; j++){
//Get RGB values for each image at certain pixel
Color c1 = new Color(image1.getRGB(j, i));
Color c2 = new Color(image2.getRGB(j, i));
// If the colors are close enough based on deviation value...
if ( (Math.abs(c1.getRed() - c2.getRed()) < pd ) &&
(Math.abs(c1.getGreen() - c2.getGreen()) < pd ) &&
(Math.abs(c1.getBlue() - c2.getBlue() ) < pd ) ) {
//...it's a match, so increment the match count
matchCount++;
}
}
}
return matchCount / (height1 * width1);
} catch (Exception e) {}
}