0

我正在使用下面的代码通过提供位图来获取像素

public int[] foo(Bitmap bitmapFoo) {
    int[] pixels;
  //  Bitmap bitmapFoo ;            
    int height = bitmapFoo.getHeight();
    int width = bitmapFoo.getWidth();

    pixels = new int[height * width];

    bitmapFoo.getPixels(pixels, 0, width, 1, 1, width - 1, height - 1); 
   return pixels;

}

现在我如何将它与相似的图像进行比较?

                           int[] i = foo(img2);
                int[] i2 = foo(img1);

                if (i==i2) {

                    txt.setText("same");
                }else{


                    txt.setText("different");
                }

即使图像相似不一样它仍然显示不同。如何避免它?

比较对吗??还是我做错了什么?

4

1 回答 1

0

我认为问题在于您正在比较对象。当您独立创建两个对象时,它们是不相等的。

如果你有i.equals(i2),它应该按预期工作。

.equals 比较值而不是测试对象是否实际上是同一个对象

编辑:我忘记了您可能必须覆盖 .equals 才能达到预期的结果。这个问题可能会对你有所帮助。 为什么我们必须重写 Java 中的 equals() 方法?

于 2013-08-22T00:08:28.217 回答