estoy trabajando en un proyecto en el que en un momento dado tengo que comparar dos images.can a nadie por favor me ayude con un método de hacer so..By la forma en que las imágenes son capturas de pantalla de una software. quería comprobar si las dos imágenes son idénticas, incluidos los números y las letras que aparecen en la imagen (captura de pantalla del software) ..código python para comparar imágenes en Python
Respuesta
Hay siguientes maneras de hacer la comparación adecuada.
- En primer lugar es el Root-Mean-Square Diferencia #
Para obtener una medida de la similitud de dos imágenes son, se puede calcular el valor de la raíz cuadrada media (RMS) de la diferencia entre las imágenes. Si las imágenes son exactamente idénticas, este valor es cero. La siguiente función usa la función de diferencia y luego calcula el valor RMS del histograma de la imagen resultante.
# Example: File: imagediff.py
import ImageChops
import math, operator
def rmsdiff(im1, im2):
"Calculate the root-mean-square difference between two images"
h = ImageChops.difference(im1, im2).histogram()
# calculate rms
return math.sqrt(reduce(operator.add,
map(lambda h, i: h*(i**2), h, range(256))
)/(float(im1.size[0]) * im1.size[1]))
- Otra es comparación exacta #
La forma más rápida para determinar si dos imágenes tienen exactamente el mismo contenido es obtener la diferencia entre las dos imágenes, y luego calcular el delimitador cuadro de las regiones distintas de cero en esta imagen. Si las imágenes son idénticas, todos los píxeles en la imagen de diferencia son cero, y la función de cuadro delimitador devuelve None.
import ImageChops
def equal(im1, im2):
return ImageChops.difference(im1, im2).getbbox() is None
No puedo dar una respuesta lista para usar, pero le indicaré (I piensa) la dirección correcta. Una manera simple de comparar dos imágenes es haciendo un hash de sus representaciones binarias y luego ver si esos hashes son los mismos. Un problema con esto es con la función hash que desea utilizar y se debe buscar uno que tiene bajas probabilidades de colisiones, y la otra es que un archivo de imagen probablemente ha metadatos adjuntos a la información binaria original, por lo que tendrá que buscar sobre cómo cortar esos metadatos para comparar las imágenes solo usando su información binaria. Además, no sé con seguridad, pero probablemente la representación binaria de una imagen codificada en formato jpg es diferente de una imagen codificada en formato PNG, por lo que debe ser consciente de ello.
estoy manteniendo una biblioteca de Python llamada pyssim que utiliza el método Structured Similarity (SSIM) para comparar dos imágenes.
No tiene enlaces de python, pero el programa perceptualdiff también es increíble al comparar dos imágenes, y bastante rápido.
es la pyssim una especie de una comparación difusa? ¿Qué pasa si hay cajas de texto en una imagen, las posiciones de las cajas son iguales con otra imagen, pero el texto es ligeramente diferente? ¿Qué puntaje devolvería? ¿solo considera las estructuras? – user299709
Si el texto es diferente, tendrá un puntaje más bajo. – jterrace
- 1. Comparar dos imágenes, el modo python/linux
- 2. Reconocer imágenes en Python
- 3. Python Speech Comparar
- 4. Clasificación de imágenes en python
- 5. Mostrar imágenes jpg en python
- 6. Procesamiento de imágenes, en Python?
- 7. Biblioteca de imágenes para Python 3
- 8. Eliminando código duplicado en python
- 9. cómo comparar dos matrices en python?
- 10. cómo comparar 2 json en python
- 11. documentación de código para python
- 12. Código "Boilerplate" en Python?
- 13. comparar dos imágenes en android
- 14. Comparar dos imágenes en JavaScript
- 15. Código simple para servidor FTP en python
- 16. Comparar imágenes para encontrar las diferencias
- 17. Imágenes de medios tonos en Python
- 18. Procesamiento de imágenes RAW en Python
- 19. Descompilar archivo .swf para obtener imágenes en python
- 20. Valor para épsilon en Python
- 21. Bloques de código en python
- 22. Alternativas de creación de imágenes de Python
- 23. Generador de código Python
- 24. código de Python encarcelamiento
- 25. Optimizar código BeautifulSoup (Python)
- 26. Simplifique este código python
- 27. ¿Es posible comparar dos imágenes en Javascript?
- 28. Código intencionalmente defectuoso (Python)
- 29. código Python como rizo
- 30. Python: estadísticas de código
¿Qué quiere decir cuando se dice comparar? ¿Quieres ver si son idénticos? ¿Estás buscando detalles sobre cómo hacer esto en Python o cómo comparar imágenes en general? –
sí que quería comparar para ver si son idénticos incluyendo los números/letras que aparecen en el software – stallion