domingo, 9 de octubre de 2016

Transformación logaritmica

Transformación  logarítmica

A continuación se muestra el código de la transformación logarítmica donde se utiliza el log10 y posteriormente se muestra el resultado se aprecia claramente como en el resultado se aclara la imagen y se observan mas detalles dando así la forma al objeto que se encuentra en la imagen


import numpy  as np
import cv2                                                                         #Se importan las librerías necesarias
import math

img = cv2.imread ('C:\Python27\loga.jpg',0)                      #Se abre una imagen oscura
row, col=img.shape                                                                      #Se conoce el tamaño de la imagen
loga=np.zeros((row,col),dtype=np.uint8)                          #se crea una matriz
np.amax(img)                                                                                 #se conoce el máximo de la imagen
b=np.amax(img)                                                                            #el maximo se almacena en otra variable
c=255/math.log10(1+b)                                                               #se calcula C= 255/log10(1|R|)
print c                                                                                                 #Imprime c
for i in range(0,row):                                                                    #se recorre la matriz
                for j in range (0,col):
                               loga[i,j]= c*math.log10(1+img[i,j])         #se aplica la formula S(x,y)=Clog10(1+r)
                              
cv2.imshow ('oscura',img)                                                         #Muestra la imagen oscura
cv2.imshow ('loga', loga)                                                                            #Muestra claridad en la imagen oscursa para apreciar los detalles desconocidos
k=cv2. waitKey(0)
cv2.destroyAllWindows()

Resultados:




No hay comentarios:

Publicar un comentario