2013-08-21 2 views
0

Я сравниваю 2 подобные изображения и хотели бы видеть, если оба подобны .Currently я использовал код:сравнить 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) где:

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

Я хотел бы знать, как получить вышеупомянутый getpixel, я попытался назначить его переменной, но не работал. Должен ли он иметь тип возврата? и в формате это?

А также как сравнить 2 изображения ??

Также оба изображения могут быть разных размеров на основе мобильной камеры, из которой сделан снимок.

Также может ли он распознать, снимается ли одно и то же изображение утром и ночью ???

Спасибо заранее.

+0

Проверьте этот пост, где они предложили несколько вариантов: http://stackoverflow.com/questions/6120439/comparing-bitmap-images-in-android – Juangcg

+0

Как получить это: bitmapFoo.getPixels (пикселей, 0, ширина, 1, 1, ширина - 1, высота - 1); –

ответ

0

Если вы хотите, чтобы скопировать пиксели растрового изображения в массив байтов, самый простой способ:

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); 
+0

, но уже есть функция getpixel: bitmapFoo.getPixels (пиксели, 0, ширина, 1, 1, ширина - 1, высота - 1); Как это получить ?? –

+0

bitmapFoo.getPixels (пиксели, 0, ширина, 0, 0, ширина, высота); – Juangcg

+0

int pxl = bitmapFoo.getPixel (bitmapFoo.getHeight(), bitmapFoo.getWidth()); ошибка givig. Почему? Спасибо за ваше время. –

Смежные вопросы