""" Created on Fri Oct 19 06:51:55 2018 @author: Manuel Andres Sanchez Muñoz """ import numpy as np import cv2 from matplotlib import pyplot as plt import funciones as fun img = cv2.imread('img7.jpg', 0) plt.imshow(img, cmap='gray') plt.title('Imagen Original en Escala de Grises') h = fun.my_hist(img) plt.figure() plt.bar(np.arange(256), h) plt.title("Histograma de la Imagen Original en Escala de Grises") imgGW = fun.grayWhite(img, 40, 170) plt.figure() plt.imshow(imgGW, cmap='gray') plt.title('Imagen Pasada Realce de Grises') kernel = np.ones((3, 3), np.uint8) erosion = cv2.erode(imgGW, kernel, iterations=1) dilation = cv2.dilate(imgGW, kernel, iterations=1) opening = cv2.morphologyEx(imgGW, cv2.MORPH_OPEN, kernel) closing = cv2.morphologyEx(imgGW, cv2.MORPH_CLOSE, kernel)
import funciones as fun import cv2 from sklearn.cluster import KMeans image = Image.open('img2.jpg').convert('RGB') plt.figure() plt.gray() plt.imshow(image) plt.axis('off') plt.title('Imagen 2 Original') Viewimagedouble = np.double(image) returnImage3 = fun.rgb2ycbcr(Viewimagedouble) Y = returnImage3[:, :, 0] Yi = np.uint8(255 * Y / Y.max()) h = fun.my_hist(Yi) Yeq = fun.my_equal(Yi, h) returnImage3[:, :, 0] = Yeq sendImage = np.double(returnImage3) previousImage = fun.ycbcr2rgb(sendImage) finalImage = np.uint8(previousImage) plt.figure() plt.gray() plt.imshow(finalImage) plt.axis('off') plt.title('Imagen 2 Ecualizada YcbCr') Im_ga = np.array(finalImage) Im_f1 = filters.uniform_filter(Im_ga, 5)
plt.figure() plt.gray() plt.imshow(Viewimage) #para llamar las funciones del histograma y la equalizacion import numpy as np from PIL import Image import matplotlib.pyplot as plt import funciones as fun Im_g = Image.open('img2.jpg').convert('L') Im_ga = np.array(Im_g) plt.gray() plt.imshow(Im_ga) h = fun.my_hist(Im_ga) plt.figure() plt.bar(np.arange(256), h) Im_eq = fun.my_equal(Im_ga, h) plt.figure() plt.gray() plt.imshow(Im_eq) h1 = fun.my_hist(Im_eq) plt.figure() plt.bar(np.arange(256), h1) #para llamar la funcion de fraccionamiento nivel de gris (se envian varios parametros) import numpy as np from PIL import Image import matplotlib.pyplot as plt
imageHSI = np.zeros(Im_a.shape) for i in range(0, row - 1): for j in range(0, col - 1): [H, S, I] = fun.rgb2hsi(r[i][j], g[i][j], b[i][j]) ch[i][j] = H cs[i][j] = S ci[i][j] = I imageHSI[:, :, 0] = ch imageHSI[:, :, 1] = cs imageHSI[:, :, 2] = ci I = imageHSI[:, :, 2] Inew = np.uint8(255 * I / I.max()) hist = fun.my_hist(Inew) Iequal = fun.my_equal(Inew, hist) imageHSI[:, :, 2] = Iequal ch = imageHSI[:, :, 0] cs = imageHSI[:, :, 1] ci = imageHSI[:, :, 2] for i in range(0, row - 1): for j in range(0, col - 1): [R, G, B] = fun.rgb2hsi(ch[i][j], cs[i][j], ci[i][j]) r[i][j] = R * 255 g[i][j] = G * 255 b[i][j] = B * 255
print("MSE para gaussiano 0.7 con ruido 0,100: " + str(fun.my_mse(Im_f1, Im_g))) Im_f1 = filters.gaussian_filter(Im_n100, 1) print("MSE para gaussiano 1 con ruido 0,100: " + str(fun.my_mse(Im_f1, Im_g))) Im_f1 = filters.gaussian_filter(Im_n100, 1.5) print("MSE para gaussiano 1.5 con ruido 0,100: " + str(fun.my_mse(Im_f1, Im_g))) Im_g = Image.open('coins.jpg').convert('L') Im_ga = np.array(Im_g) plt.gray() plt.imshow(Im_ga) plt.title("Imagen original en escala de grises") horiginal = fun.my_hist(Im_ga) plt.figure() plt.bar(np.arange(256), horiginal) plt.title("Histograma original") [row, col] = Im_ga.shape Im_n80 = np.double(Im_ga) for i in range(0, row - 1): for j in range(0, col - 1): Im_n80[i, j] = Im_n80[i, j] + np.random.uniform(0, 80) plt.figure() plt.gray() plt.imshow(Im_n80) Im_h80 = np.uint8(Im_n80) plt.title("Imagen con ruido 0,80")
# Imprimir imagen con filtro uniforme 3 x 3 en escala de grises plt.figure() plt.gray() plt.imshow(Im_f1u) plt.title("Imagen con filtro uniforme de 3 x 3") # Imprimir imagen con filtro Gaussiano 0.5 en escala de grises plt.figure() plt.gray() plt.imshow(Im_f1u) plt.title("Imagen con filtro Gaussiano 0.5") # Imprimir histograma imagen original Im_h = np.uint8(Im_ga) h = fun.my_hist(Im_h) plt.figure() plt.bar(np.arange(256), h) plt.title("Histograma imagen original") # Imprimir histograma imagen con ruido (0,60) Im_h60 = np.uint8(Im_n60) hruido = fun.my_hist(Im_h60) plt.figure() plt.bar(np.arange(256), hruido) plt.title("Histograma con ruido (0,60)") # Imprimir histograma imagen filtro uniforme 3 x 3 Im_h3x3 = np.uint8(Im_f1u) h3x3 = fun.my_hist(Im_h3x3) plt.figure()