martes, 8 de noviembre de 2016

TRANSFORMACIÓN LOGARÍTMICA

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