Estoy trabajando en un script de procesamiento de imágenes. Debo dejar que el usuario especifique cómo reasignar algunas clases en una imagen a través de un archivo de texto. La sintaxis en este archivo debe ser simple y evidente. Lo que se me ocurrió hacer es conseguir que el usuario escriba la versión de cadena de un diccionario:Transformando la representación de cadenas de un diccionario en un diccionario real
125:126, 126:126, 127:128, 128:128
y luego transformarlo en un diccionario real (esto es el eslabón perdido):
a = {125:126, 126:126, 127:128, 128:128}
El reasignación de las clases de la imagen sería entonces hacerse así:
u, indices = numpy.unique(image, return_inverse=True)
for i in range(0, len(u)):
u[i] = a[u[i]]
updatedimage = u[indices]
updatedimage = numpy.resize(updatedimage, (height, width)) #Resize to original dims
¿hay una manera simple de hacer esta transformación de la versión "cadena" a un diccionario real? ¿Puedes pensar en una sintaxis de una línea más fácil/alternativa que el usuario pueda usar?
Gracias, ambos funcionan muy bien. Prefiero tu alternativa; salvará otra importación y trabajará con una versión anterior ... – Benjamin