import matplotlib.pyplot as plt from helpers import load_image, save_image, my_imfilter resultsDir = '..' + os.sep + 'results' if not os.path.exists( resultsDir ): os.mkdir( resultsDir ) test_image = load_image('../data/cat.bmp') test_image = rescale(test_image, 0.7, mode='reflect' , multichannel = True) ''' Identity filter This filter should do nothing regardless of the padding method you use. ''' identity_filter = np.asarray([[0, 0, 0], [0, 1, 0], [0, 0, 0]], dtype=np.float32) identity_image = my_imfilter(test_image, identity_filter) plt.imshow(identity_image) done = save_image('../results/identity_image.jpg', identity_image) ''' Small blur with a box filter This filter should remove some high frequencies. ''' blur_filter = np.ones((3, 3), dtype=np.float32) blur_filter /= np.sum(blur_filter, dtype=np.float32) # making the filter sum to 1 blur_image = my_imfilter(test_image, blur_filter) plt.imshow(blur_image) done = save_image(resultsDir + os.sep + 'blur_image.jpg', blur_image)
import matplotlib.pyplot as plt from helpers import load_image, save_image, my_imfilter resultsDir = '..' + os.sep + 'results' if not os.path.exists(resultsDir): os.mkdir(resultsDir) test_image = load_image('../data/cat.bmp') test_image = rescale(test_image, 0.7, mode='reflect') ''' Identity filter This filter should do nothing regardless of the padding method you use. ''' identity_filter = np.asarray([[0, 0, 0], [0, 1, 0], [0, 0, 0]], dtype=np.float32) identity_image = my_imfilter(test_image, identity_filter) plt.imshow(identity_image) done = save_image('../results/identity_image.jpg', identity_image) ''' Small blur with a box filter This filter should remove some high frequencies. ''' blur_filter = np.ones((3, 3), dtype=np.float32) blur_filter /= np.sum(blur_filter, dtype=np.float32) # making the filter sum to 1 blur_image = my_imfilter(test_image, blur_filter) plt.imshow(blur_image) done = save_image(resultsDir + os.sep + 'blur_image.jpg', blur_image) ''' Large blur This blur would be slow to do directly, so we instead use the fact that Gaussian blurs are separable and blur sequentially in each direction.