Buscar

laplacian filter

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

from PIL.Image import open
import numpy as np
import matplotlib.pyplot as plt
from scipy.misc import imread
from scipy import ndimage
f = open('school.png').convert('L')
f = (np.asarray(f)).astype(np.double)
n_rows, n_cols = f.shape
lap = np.empty((n_rows, n_cols), dtype=np.double)
# Kernel.
h = np.array([[0,1,0], [1,-4,1], [0,1,0]])
for r in range(1, n_rows-1):
	for c in range(1, n_cols-1):
		lap[r,c] = np.sum(f[r-1:r+2,c-1:c+2]*h)
		
lap = lap - np.min(lap)
lap = 255*(lap/np.max(lap))
# Applying Laplacian.		
c = -1
simg = f + c*lap
# Normaling pixels values to interval [0,1]
simg = simg - np.min(simg)
simg = 255*(simg/np.max(simg))
# Contrast stretch in interval [60,200].
r1,s1 = 60.0,0.0
r2,s2 = 200.0,255.0
mask1 = simg < r1
mask2 = np.logical_and(simg >= r1, simg <= r2)
mask3 = (simg > r2)
simg[mask1] = s1/r1 * simg[mask1]
simg[mask2] = (s2-s1)/(r2-r1) * (simg[mask2]-r1) + s1
simg[mask3] = (255-s2)/(255-r2)*(simg[mask3]-r2) + s2
# Convert to a byte image (uint8).
simg = simg.astype(np.uint8)
		
# Original image.
plt.subplot(131)
plt.imshow(f, cmap = plt.cm.gray)
plt.title('Original image')
plt.axis('off')
# Sharpenned image.
plt.subplot(132)
plt.imshow(simg, cmap = plt.cm.gray)
plt.title('Sharpenned image')
plt.axis('off')
# Laplacian.
plt.subplot(133)
plt.imshow(lap, cmap = plt.cm.gray)
#plt.colorbar()
plt.title('Laplacian')
plt.axis('off')
plt.show()

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais