diff --git a/Maths/ZellersCongruence.py b/Maths/ZellersCongruence.py new file mode 100644 index 000000000000..1f06635dd795 --- /dev/null +++ b/Maths/ZellersCongruence.py @@ -0,0 +1,45 @@ +import argparse +"""Zellers Congruence Birthday Algorithm + Find out what day of the week you were born on, or any other date. +""" + +def zeller(date_input): + + weekdays = { + '0': 'Sunday', + '1': 'Monday', + '2': 'Tuesday', + '3': 'Wednesday', + '4': 'Thursday', + '5': 'Friday', + '6': 'Saturday' + } + + m = int(date_input[0] + date_input[1]) + d = int(date_input[3] + date_input[4]) + y = int(date_input[6] + date_input[7] + date_input[8] + date_input[9]) + + if m <= 2: + y = y - 1 + m = m + 12 + c = int(str(y)[:2]) + k = int(str(y)[2:]) + + t = int(2.6*m - 5.39) + u = int(c / 4) + v = int(k / 4) + x = d + k + z = t + u + v + x + w = z - (2 * c) + + f = round(w%7) + + for day in weekdays: + if f == int(day): + print("The date " + date_input + ", is a " + weekdays[day] + ".") + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description='Find out what day of the week you were born on, or any other date. Accepts birthday as a string in mm-dd-yyyy or mm/dd/yyyy format.') + parser.add_argument('date_input', type=str, help='Date as a string (mm-dd-yyyy or mm/dd/yyyy)') + args = parser.parse_args() + zeller(args.date_input) \ No newline at end of file diff --git a/digital_image_processing/edge_detection/canny.py b/digital_image_processing/edge_detection/canny.py index 7fde75a90a48..bddd8fe7e8cd 100644 --- a/digital_image_processing/edge_detection/canny.py +++ b/digital_image_processing/edge_detection/canny.py @@ -5,7 +5,6 @@ PI = 180 - def gen_gaussian_kernel(k_size, sigma): center = k_size // 2 x, y = np.mgrid[0 - center:k_size - center, 0 - center:k_size - center] diff --git a/digital_image_processing/filters/median_filter.py b/digital_image_processing/filters/median_filter.py index ed20b1ab7f78..4b21b96b080b 100644 --- a/digital_image_processing/filters/median_filter.py +++ b/digital_image_processing/filters/median_filter.py @@ -15,7 +15,7 @@ def median_filter(gray_img, mask=3): # set image borders bd = int(mask / 2) # copy image size - median_img = zeros_like(gray) + median_img = zeros_like(gray_img) for i in range(bd, gray_img.shape[0] - bd): for j in range(bd, gray_img.shape[1] - bd): # get mask according with mask diff --git a/digital_image_processing/test_digital_image_processing.py b/digital_image_processing/test_digital_image_processing.py new file mode 100644 index 000000000000..0ff9e3333ca8 --- /dev/null +++ b/digital_image_processing/test_digital_image_processing.py @@ -0,0 +1,62 @@ +""" +PyTest's for Digital Image Processing +""" + +import digital_image_processing.edge_detection.canny as canny +import digital_image_processing.filters.gaussian_filter as gg +import digital_image_processing.filters.median_filter as med +import digital_image_processing.filters.sobel_filter as sob +import digital_image_processing.filters.convolve as conv +import digital_image_processing.change_contrast as cc +from cv2 import imread, cvtColor, COLOR_BGR2GRAY +from numpy import array, uint8 +from PIL import Image + +img = imread(r"digital_image_processing/image_data/lena.jpg") +gray = cvtColor(img, COLOR_BGR2GRAY) + +# Test: change_contrast() +def test_change_contrast(): + with Image.open("digital_image_processing/image_data/lena.jpg") as img: + # Work around assertion for response + assert str(cc.change_contrast(img, 110)).startswith( + "