我正在制作Android应用,其中用户拍摄两张图片,第一张是#34;减去"从第二个逐个像素的角度来看。
基本上,两个位图转换为2D int数组,并使用以下方法执行图像减法:
private int[][] pixelmapDifference(int[][] subtrahend, int[][] minuend) {
int[][] diff = new int[subtrahend.length][subtrahend[0].length];
for (int x = 0; x < diff.length; x++) {
for (int y = 0; y < diff[0].length; y++) {
diff[x][y] = minuend[x][y] - subtrahend[x][y];
}
}
return diff;
}
然后将生成的2D数组转换为位图。这就是3幅图像的样子(第一,第二和差异)。
我如何解释这个?我想在两者之间找到差异,在这种情况下只是水。
答案 0 :(得分:0)
你总是从第一个减去第二个。当第二个更亮时会发生什么?返回的值低于零。我不是百分之百肯定会发生什么,但文档说颜色是
int color = (A & 0xff) << 24 | (R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff);
因此,当你在某些情况下从较暗处减去较轻的结果时,结果是这些奇怪的点。