Si tengo una serie de píxeles, que van desde, por ejemplo, -500 hasta +1000, ¿cómo normalizaría todos los píxeles en el mismo degradado para que caigan dentro de un rango específico, digamos 0 y 255?¿Cómo normalizo una imagen?
Respuesta
Algunos pseudocódigo como éste escalaría linealmente los valores de una gama a otra
oldmin=-500
oldmax=1000
oldrange=oldmax-oldmin;
newmin=0
newmax=255;
newrange=newmax-newmin;
foreach(oldvalue)
{
//where in the old scale is this value (0...1)
scale=(oldvalue-oldmin)/oldrange;
//place this scale in the new range
newvalue=(newrange*scale)+newmin
}
Algunos pseudo código puede ayudar:
foreach(pixel_value in pixel_values): # between -500 and 1000
position = (pixel_value + 500)/1500 # gives you a 0 to 1 decimal
new_value = int(postion * 255) # or instead of casting, you could round it off
Ese es el código Python por cierto.
En primer lugar hacer que todo positivo. Si el mínimo es -500, agregue 500 a todos los valores. A continuación, el mínimo sería 0 y el máximo sería 1500.
entonces es sólo una regla de tres y lo tienes:
[value in 0,255] = 255*(Pixel/1500)
Su pregunta no es muy clara, así que voy Supongamos que está realizando algún tipo de procesamiento de imágenes y los resultados que obtiene son valores de -500 a 1000 y ahora debe guardar el color en un archivo donde cada valor debe estar entre 0 y 255.
Cómo se hace esto es realmente muy dependiente en la aplicación, cuál es realmente el significado de los resultados y qué es exactamente lo que quiere hacer. Las dos opciones principales son:
- abrazadera de los valores - nada debajo de 0 se reemplace por 0 y nada por encima de 255 se reemplaza por 255. Usted querrá hacer esto, por ejemplo, si el procesamiento de imágenes es una especie de interpolación que realmente no debería alcanzar estos valores
Normalización lineal - linealmente puede su valor mínimo a 0 y su valor máximo a 255. Por supuesto, primero tendrá que encontrar el mínimo y el máximo. Lo haces:
v = (origv - min)/(max - min) * 255.0
Lo que esto hace primero es el mapa de los valores a [0,1]
y luego estirar de nuevo a [0,255]
.
Una tercera opción es mezclar y combinar estas dos opciones. Su aplicación puede exigir que trate los valores negativos como valores innecesarios y los fije en 0 y valores positivos para mapear linealmente a [0,255]
.
Crea dos variables, MinInputValue
y MaxInputValue
. Inicialice MinInputValue
en un número positivo muy grande (más alto que el valor de píxel más grande que jamás haya visto) y MaxInputValue
en un número negativo muy grande (menor que el valor de píxel más bajo que jamás haya visto).
Haz un bucle sobre cada píxel de la imagen. Para cada píxel, si el valor de píxel PixelValue
es inferior a MinInputValue
, configure MinInputValue
en PixelValue
. Si el valor del píxel es superior a MaxInputValue
, configure MaxInputValue
en PixelValue
.
Crea una nueva variable, InputValueRange
, y configúrala en MaxInputValue - MinInputValue
.
Una vez hecho esto, vuelva a pasar cada píxel de la imagen.Para cada píxel PixelValue
, calcule el valor de píxel de salida como 255.0 * (PixelValue - MinInputValue)/InputValueRange
. Puede asignar este nuevo valor al original PixelValue
, o puede establecer el píxel correspondiente en una imagen de salida del mismo tamaño.
- 1. ¿cómo normalizo una puntuación solr/lucene?
- 2. ¿Cómo normalizo un diagrama hexbin?
- 3. ¿Cómo mostrar una imagen?
- 4. Cómo cerrar una imagen?
- 5. ¿Cómo agregar una imagen?
- 6. ¿Cómo giro una imagen?
- 7. Cómo recortar una imagen enorme
- 8. Cómo clonar una Imagen Buffered
- 9. ¿Cómo guardar una imagen Ipl?
- 10. JSP ¿Cómo escalar una imagen?
- 11. Cómo dibujar una imagen en una ventana?
- 12. ¿Cómo establecer una imagen para una fila?
- 13. cómo dibujar una línea en una imagen?
- 14. ¿Cómo mostrar una parte de una imagen?
- 15. Buscar una imagen dentro de una imagen
- 16. Cómo encontrar una imagen dentro de otra imagen usando python
- 17. Cómo separar una imagen en dos con java
- 18. ¿Cómo obtener una parte de una imagen y usarla como una imagen separada?
- 19. ¿Cómo colorear una imagen en CSS?
- 20. ¿Cómo puedo agregar metadatos a una imagen?
- 21. ¿Cómo obtener metadatos de una imagen?
- 22. Cómo cargar una imagen transparente desde ImageList?
- 23. ¿Cómo mostrar una imagen en un MKOverlayView?
- 24. cómo determinar si una imagen es explícita
- 25. ¿Cómo obtengo una imagen de un UIButton?
- 26. ¿Cómo haces que una imagen parpadee?
- 27. Cómo mostrar una imagen de tamaño completo
- 28. ¿Cómo mido distancias en una imagen?
- 29. ¿Cómo descargo una imagen usando Ruby?
- 30. ¿Cómo copio una imagen remota en python?
Ese no es el código Python –
Correcto, debería ser "para pixel_value en pixel_values:". Para mucho .NET ese día ... – jsapara