-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathproblem1.py
More file actions
61 lines (57 loc) · 2.58 KB
/
Copy pathproblem1.py
File metadata and controls
61 lines (57 loc) · 2.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import numpy as np
from matplotlib import pyplot as plt
from skimage import data, img_as_float
def original_code(Original_image):
sigmax,sigmay=20,20
nrows,ncols=Original_image.shape
ftimage = np.fft.fft2(Original_image)
fft_shift_image = np.fft.fftshift(ftimage)
cy,cx=nrows/2,ncols/2
x=np.linspace(0,nrows,nrows)
y=np.linspace(0,ncols,ncols)
X,Y =np.meshgrid(x,y)
gmask=np.exp( -(((X-cx)/sigmax)**2+((Y-cy)/sigmay)**2))
fft_fifltered=fft_shift_image*gmask
fiflter_image=np.abs(np.fft.ifft2(np.fft.ifftshift(fft_fifltered)))
return fiflter_image
def paddingcode(Original_image):
sigmax, sigmay = 40, 40
nrows, ncols = Original_image.shape
padding_image=np.pad(Original_image,(int(nrows/2),int(ncols/2)),'reflect')
ftimage = np.fft.fft2(padding_image)
fft_shift_image = np.fft.fftshift(ftimage)
padd_rows, padd_ncols = padding_image.shape
cy,cx=padd_rows/2,padd_ncols/2
x=np.linspace(0,padd_rows,padd_rows)
y=np.linspace(0,padd_ncols,padd_ncols)
X,Y =np.meshgrid(x,y)
gmask=np.exp( -(((X-cx)/sigmax)**2+((Y-cy)/sigmay)**2))
fft_fifltered=fft_shift_image*gmask
fiflter_image=np.abs(np.fft.ifft2(np.fft.ifftshift(fft_fifltered)))
final_fiflter_image = fiflter_image[int(nrows/2):int(3*nrows/2),int(ncols/2):int(3*ncols/2)]
return padding_image,fiflter_image,final_fiflter_image
if __name__ == '__main__':
Original_image = img_as_float(data.camera())
print('Original_image',type(Original_image), Original_image.dtype, Original_image.shape)
plt.figure(1)
plt.title('Original image')
plt.imshow(Original_image, cmap='gray', interpolation='nearest');
fiflter_image=original_code(Original_image)
print('fiflter_image',type(fiflter_image), fiflter_image.dtype, fiflter_image.shape)
plt.figure(2)
plt.title('Image generated by the original code')
plt.imshow(fiflter_image, cmap='gray');
padding_image,fiflter_image,final_fiflter_image = paddingcode(Original_image)
print('padding_image',type(padding_image), padding_image.dtype, padding_image.shape)
plt.figure(3)
plt.title('Padded image (2M×2N)')
plt.imshow(padding_image, cmap='gray');
print('fiflter_image',type(fiflter_image), fiflter_image.dtype, fiflter_image.shape)
plt.figure(4)
plt.title(' Filtered padded image (2M×2N)')
plt.imshow(fiflter_image, cmap='gray');
plt.figure(5)
print('fiflter_image', type(final_fiflter_image), final_fiflter_image.dtype, final_fiflter_image.shape)
plt.title('Image with no wraparound error (M×N)')
plt.imshow(final_fiflter_image, cmap='gray');
plt.show()