【问题标题】:compare 2 images to avoid duplication比较 2 个图像以避免重复
【发布时间】:2013-08-21 21:39:48
【问题描述】:

我正在比较 2 个相似的图像,并想看看两者是否相似。目前我使用的代码:

public void foo(Bitmap bitmapFoo) {
    int[] pixels;

    int height = bitmapFoo.getHeight();
    int width = bitmapFoo.getWidth();

    pixels = new int[height * width];

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


}

我调用函数:foo(img1) where :

img1=(Bitmap)data.getExtras().get("data");

我想知道如何获得上面的getpixel,我尝试将它分配给变量但没有工作。它应该有一个返回类型吗?格式是?

还有如何比较两张图片??

此外,根据拍摄快照的移动相机,这两个图像可能具有不同的尺寸。

还可以识别早晚拍同一张图???

提前致谢。

【问题讨论】:

标签: android imageview getpixel


【解决方案1】:

此代码会将基础图像中的像素与其他图像进行比较。

  1. 如果位置 (x,y) 的两个像素相同,则在结果图像中添加相同的像素而不进行更改。否则,它会修改该像素并添加到我们的结果图像中。

  2. 如果基线图像的高度或宽度大于其他图像,则会为其他图像中不可用的额外像素添加红色。

  3. 两种图像文件格式应相同以进行比较。

  4. 代码将使用基本图像文件格式来创建结果图像文件,结果图像包含观察到差异的突出显示部分。

这是一个Link To Code,附有示例。

【讨论】:

    【解决方案2】:

    如果要将位图的像素复制到字节数组中,最简单的方法是:

    int height = bitmapFoo.getHeight();
    int width = bitmapFoo.getWidth();
    
    pixels = new int[height * width];
    
    bitmapFoo.copyPixelsToBuffer(pixels);
    

    See the documentation

    我应该警告你,你必须小心处理这个问题,否则你会得到 OutOfMemoryError。

    获取所有像素

    bitmapFoo.copyPixelsToBuffer(pixels);
    

    bitmapFoo.getPixels(pixels, 0, width, 0, 0, width, height);
    

    获取一个像素

    这两个参数必须是 [0, getWidth()-1] 和 [0, getHeight()-1] 范围内的两个整数

    int pix = bitmapFoo.getPixel(x, y);
    

    【讨论】:

    • 但是已经有了getpixel函数:bitmapFoo.getPixels(pixels, 0, width, 1, 1, width - 1, height - 1);这个怎么弄??
    • bitmapFoo.getPixels(pixels, 0, width, 0, 0, width, height);
    • int pxl = bitmapFoo.getPixel(bitmapFoo.getHeight(), bitmapFoo.getWidth());是givig错误。为什么?感谢您的宝贵时间。
    • 再次检查答案,但您收到错误,因为您使用的是位图之外的索引。
    • 再次抱歉。我对上述主题有 3 个问题。 1. bitmapFoo.getPixels(pixels, 0, width, 0, 0, width, height);如何将上述语句的值转换为变量?还是数组?或返回类型或仅比较 2 个位图。基本上我正在寻找正在工作的示例代码或项目 > 我已经研究了几个小时。无法解决
    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-31
    • 2015-03-31
    相关资源
    最近更新 更多