El valor logarítmico de un número es un número que eleva la potencia a un número base que da el mismo número que en la entrada. Simplemente, el logaritmo es la inversión del valor exponencial de un número.
log(exp(x)) = x
¿Cómo se calcula el valor logarítmico de un número?
Veamos un ejemplo,
Aplicando logaritmo en ambos lados,
log(2^3) = log(8) 3 * log(2) = log(8) 3 = log(8) / log(2) Log(8) = 3 (base is 2)
Sabemos que el valor de un número con potencia 0 es igual a 1. Entonces,
log1 = 0
y
log0 = infinity
Podemos encontrar el valor de registro de un número usando Python de la siguiente manera:
import numpy as np # input a number as integer a = int(input()) print("Natural log value of the input number is", np.log(a)) # If you want base of log to be set to 2 print("Log value of the number with base 2 is", np.log2(a)) # If you want base of log to be set to 10 print("Log value of the number with base 10 is", np.log10(a))
Ejemplos:
Input : 8 Output : Natural log value of the input number is 2.0794415416798357 Log value of the number with base 2 is 3.0 Log value of the number with base 10 is 0.9030899869919435 Input : 255 Output : Natural log value of the input number is 5.541263545158426 Log value of the number with base 2 is 7.994353436858858 Log value of the number with base 10 is 2.406540180433955
Nota: Puede ver la función de registro en Python visitando aquí.
Transformación de registros
La transformación logarítmica de una imagen es una de las transformaciones de imagen de nivel de gris. La transformación logarítmica de una imagen significa reemplazar todos los valores de píxeles, presentes en la imagen, con sus valores logarítmicos. La transformación de registro se utiliza para mejorar la imagen, ya que expande los píxeles oscuros de la imagen en comparación con los valores de píxeles más altos.
La fórmula para aplicar la transformación logarítmica en una imagen es,
S = c * log (1 + r) where, R = input pixel value, C = scaling constant and S = output pixel value
El valor de ‘c’ se elige de manera que obtengamos el valor de salida máximo correspondiente al tamaño de bit utilizado. Entonces, la fórmula para calcular ‘c’ es la siguiente:
c = 255 / (log (1 + max_input_pixel_value))
Cuando aplicamos la transformación de registro en una imagen y cualquier valor de píxel es ‘0’, su valor de registro se volverá infinito. Es por eso que estamos agregando ‘1’ a cada valor de píxel en el momento de la transformación de registro para que si cualquier valor de píxel es ‘0’, se convertirá en ‘1’ y su valor de registro será ‘0’.
Apliquemos la transformación de registro en una imagen usando Python.
Fichero de entrada –
import cv2 import numpy as np import matplotlib.pyplot as plt # Read an image image = cv2.imread('GFG.png') # Apply log transformation method c = 255 / np.log(1 + np.max(image)) log_image = c * (np.log(image + 1)) # Specify the data type so that # float value will be converted to int log_image = np.array(log_image, dtype = np.uint8) # Display both images plt.imshow(image) plt.show() plt.imshow(log_image) plt.show()
Producción :
La transformación de registros brinda información real al mejorar la imagen. Si aplicamos este método en una imagen que tiene valores de píxeles más altos, mejorará más la imagen y se perderá la información real de la imagen. Por lo tanto, este método no se puede aplicar en todas partes. Se puede aplicar en imágenes donde los valores de píxeles bajos son más altos que los altos.
Publicación traducida automáticamente
Artículo escrito por pankajpatra1998 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA