Android java porcentaje bitmap píxel diferencia entre dos imágenes
Necesito calcular la diferencia de píxeles entre dos imágenes en java en Android. El problema es que tengo un código que devuelve un resultado impreciso.
Por ejemplo, tengo 3 imágenes muy similares pero devuelve resultados significativamente diferentes para la comparación de cada uno de ellos: pic1 vs pic2 = 1,71%; Pic1 vs pic3 = 0,0045%; Pic2 vs pic3 = 36,7%.
- Android intentando usar un mapa de bits reciclado, no en mi código
- Imagen de Android seleccionada de la galería La orientación siempre es 0: Exif TAG
- Android usando Renderscript para efectos de desenfoque falla causas A / libc: Fatal señal 7 (SIGBUS), código 2, error addr 0x9e6fa000 en tid 482 (AsyncTask # 1)
- Copiar una matriz de bits de la imagen de mapa de bits en la programación ANDROID
- ¿Cómo configurar la imagen de una imagen de una cadena?
BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inPreferredConfig = Bitmap.Config.ARGB_8888; opt.inSampleSize = 5; Bitmap mBitmap1 = BitmapFactory.decodeFile("/sdcard/pic1.jpg", opt); Bitmap mBitmap2 = BitmapFactory.decodeFile("/sdcard/pic2.jpg", opt); int intColor1 = 0; int intColor2 = 0; for (int x = 0; x < mBitmap1.getWidth(); x++) { for (int y = 0; y < mBitmap1.getHeight(); y++) { intColor1 = mBitmap1.getPixel(x, y); intColor2 = mBitmap2.getPixel(x, y); //System.out.print(" ("+ x + ","+ y +") c:" + intColor1); } String resultString = String.valueOf(intColor1); } //now calculate percentage difference double razlika = (((double)intColor1 - intColor2)/intColor2)*100; }
Creo que tengo que comparar cada píxel de ambas imágenes (intColor1 (x, y) vs intColor2 (x, y)), pero ¿cómo puedo hacer eso, y para calcular la diferencia de porcentaje más tarde?
- Android, la forma más rápida de dibujar un mapa de bits a la lona
- Java: escala Mapsforge Map al usar mosaicos de mapa de bits en línea en lugar del renderizador sin conexión
- ¿Cómo obtengo el mapa de bits resultante de una imagen después de haber sido redimensionado en una vista de imagen con picasso
- Mapa de bits en ImageView con esquinas redondeadas
- Crear imagen desde la vista / pantalla en Android
- Dibujar objeto / imagen sobre lienzo
- ¿Por qué setImageBitmap no tiene efecto en ImageButton personalizado?
- Cómo guardar la imagen a través de la captura en android a php?
La fórmula de porcentaje que está usando es incorrecta. Por ejemplo, # 333333 es casi idéntico a # 333332 (y su fórmula muestra que son 0.003% diferentes). También # 323333 es casi idéntico a # 333333, pero su fórmula muestra que son 3% diferentes.
Debe extraer cada bit de composición de cada píxel de color (Color.red (), Color.green (), Color.blue ()), calcular la diferencia de cada uno de ellos y obtener el porcentaje de diferencia combinado.
Si bien este método de obtener la diferencia de las dos imágenes es simple y eficiente, tiene una gran advertencia: si las imágenes son idénticas en contenido, pero desplazado por un píxel (a la derecha por ejemplo), su método les mostrará como completamente diferente .
- (A) Smack devuelve el error "service-unavailable (503)" en login ()
- Teclado personalizado de Android, las clases siguientes no pudieron ser instanciadas: