def blurThenUnsharpen(img_path, sds, filename): img = io.imread(img_path, as_grey=True) for sd in sds: print 'Sigma:', str(sd) blurred = filters.gaussian_filter(img, sd) custom_utils.plot_im_grey(blurred, 'Blurred where sigma is ' + str(sd), 'Q1/blurred_' + filename + '_' + str(sd) + '.png') unsharpened = UnsharpMasking(blurred, sd) unsharpened = np.clip(unsharpened, 0, 1) custom_utils.plot_im_grey(unsharpened, 'Unsharpen Masking where sigma is ' + str(sd), 'Q1/part5_' + filename + '_' + str(sd) + '.png')
def RunFilters(img, filename, plot_title): dfilt_img = DistanceFilter(img) pfilt_img = PixelFilter(img) cfilt_img = ComboFilter(img) custom_utils.plot_im_grey(dfilt_img, plot_title + "Distance Filtered", filename + '_distance.png') custom_utils.plot_im_grey(pfilt_img, plot_title + 'Pixel Filtered', filename + '_pixel.png') custom_utils.plot_im_grey(cfilt_img, plot_title + 'Combo Filtered', filename + '_combo.png')
print 'Gradiant Magnitude @ Center', g_mag[2][2] print 'Gradiant Direction @ Center', g_dir[2][2] images = ['Images/Q1/cameraman.jpg', 'Images/Q1/house.jpg', 'Images/Q1/lena.jpg'] # Part 4 for image in images: img = io.imread(image, as_grey=True) fn = image.split('/')[-1] print fn filename = 'Q1/part4_nonoise_' + fn plot_title = 'No Noise - ' RunFilters(img, filename, plot_title) noisy = custom_utils.AddNoise(img) filename = 'Q1/' + fn + '_noisy.png' custom_utils.plot_im_grey(noisy, "Noise - No Filter", filename) filename = 'Q1/part4_noise_' + fn plot_title = 'Gaussian Noise - ' RunFilters(noisy, filename, plot_title) # Part 5 sds = [0.75, 2.5] for image in images: fn = image.split('/')[-1] print fn blurThenUnsharpen(image, sds, fn)