Commit bf2bebf2 authored by 袁通's avatar 袁通
Browse files

Update lab5

parent f59ae2aa
Loading
Loading
Loading
Loading
+21 −11
Original line number Original line Diff line number Diff line
@@ -11,7 +11,9 @@ import matplotlib.pyplot as plt


# General
# General
def format_image(input_image):
def format_image(input_image):
    output_image = np.clip(input_image, 0, 255)
    output_image = input_image
    output_image -= np.min(output_image)
    output_image = (output_image/np.max(output_image))*255
    output_image = output_image.astype(np.uint8)
    output_image = output_image.astype(np.uint8)


    return output_image
    return output_image
@@ -72,6 +74,13 @@ def zero_padding(input_image, P, Q):


# LAB 5
# LAB 5


def extract_result(input_image):
    x, y = input_image.shape
    output_image = input_image[int(x/2):x, int(y/2):y]

    return output_image


def zero_padding_DFT(input_image, P, Q):
def zero_padding_DFT(input_image, P, Q):
    m,n = input_image.shape
    m,n = input_image.shape


@@ -80,6 +89,7 @@ def zero_padding_DFT(input_image, P, Q):


    return output_image
    return output_image



def zero_padding_DFT(input_image):
def zero_padding_DFT(input_image):
    m,n = input_image.shape
    m,n = input_image.shape


@@ -91,6 +101,7 @@ def zero_padding_DFT(input_image):


    return output_image
    return output_image



def transform_centering(input_image):
def transform_centering(input_image):
    m, n = input_image.shape
    m, n = input_image.shape
    output_image = input_image
    output_image = input_image
@@ -110,18 +121,17 @@ def generating_from_spatial_filter(input_filter, P, Q):
    return output_filter
    return output_filter




def gaussian_filter(shape, sigma):
def gaussian_filter(a, b, sigma):
    x, y = [edge /2 for edge in shape]
    x, y = np.meshgrid(np.linspace(0, a-1, a), np.linspace(0, b-1, b))
    grid = np.array([[((i**2+j**2)/(2.0*sigma**2)) for i in range(-x, x+1)] for j in range(-y, y+1)])
    x = x - a/2
    g_filter = np.exp(-grid)/(2*np.pi*sigma**2)
    y = y - b/2
    g_filter /= np.sum(g_filter)
    d = x * x + y * y
    return g_filter
    g = np.exp(-(d / (2.0 * sigma ** 2)))
    # g = g/np.sum(g)
    return g




if __name__ == '__main__':
if __name__ == '__main__':


    test_input = np.array([[1, 2, 3], [1, 2, 3]])
    io.imsave("gaussian_filter_test.tif", format_image(gaussian_filter(100, 100, 30)))
    m, n = test_input.shape
    test_output = zero_padding_DFT(test_input, 2*m, 2*n)
    print(test_output)
 No newline at end of file
+1.37 MiB

File added.

No diff preview for this file type.

+1.37 MiB

File added.

No diff preview for this file type.

Loading