La transformación logarítmica es similar ala exponencial, solo que sin el problema de desbordes.
En el siguiente programa podemos mirar como mejora el contraste y brillo de la imagen, permitiéndonos visualizar detalles que no se apreciaban antes de ello.
import numpy as np
import cv2 #Importamos las librerias
import math
img = cv2.imread ('C:\Users\L\Desktop\python\cubos.jpg',0)
row, col=img.shape #Tamaño de la imagen
log=np.zeros((row,col),dtype=np.uint8) #Creamos la matriz
np.amax(img) #máximo de la imagen
f=np.amax(img) #guardamos el maximo en una variable
c=255/math.log10(1+b) #se calcula C= 255/log10(1|R|)
for a in range(0,row): #Recorremos la matriz
for b in range (0,col):
log[a,b]= c*math.log10(1+img[a,b]) #se aplica la formula S(x,y)=Clog10(1+r)
cv2.imshow ('IMAGEN',img) #Muestra la imagen original
cv2.imshow ('TRANSFORMACIÓN', log) #Muestra la mejora de la imagen
k=cv2. waitKey(0)
cv2.destroyAllWindows()
VISUALIZACIÓN:
No hay comentarios:
Publicar un comentario