def test_motion_blur(x, y, models): # initialize histories histories = init_histories({'kernel_size': mb_ksizes}) # run tests for ksize in mb_ksizes: # apply motion blur print('[INFO] Applying motion blur with kernel size=({}, {})'\ .format(ksize, ksize)) noisy = [] count = 0 mb_kernel = numpy.zeros((ksize, ksize)) mb_kernel[ksize // 2, :] = 1 mb_kernel /= numpy.sum(mb_kernel) for image in x: noisy.append( imdegrade(image, 'motion_blur', mb_kernel=mb_kernel, seed=RANDOM_SEED)) count += 1 print('\r[INFO] Progress... {:3.0f}%'\ .format(count*100/len(x)), end='') # save noisy image samples if required if SAVE_NOISY: save_samples(noisy, SAMP_NOISY, randomize=True, seed=RANDOM_SEED, filename_prefix='motion_blur_ksize_({}x{})'.format( ksize, ksize), target_directory=OUTPUT_DIR_NOISY) # test models results = test_models(noisy, y, models) # update histories for hist_dict, res_dict in zip(histories, results): for key in res_dict.keys(): hist_dict[key].append(res_dict[key]) # save and plot histories save_and_plot_histories(file_id='motion_blur', histories=histories, title='Change in accuracy with motion blur', xlabel='kernel size', ylabel='accuracy (\u0025)') return
def test_gaussian_color(x, y, models): # initialize histories histories = init_histories({'sigma': sigmavals}) # run tests for sigma in sigmavals: # apply gaussian color noise print('[INFO] Applying Gaussian color noise with mu=0 and sigma={}'\ .format(sigma)) noisy = [] count = 0 for image in x: noisy.append( imdegrade(image, 'gaussian_color', mu=0, sigma=sigma, seed=RANDOM_SEED)) count += 1 print('\r[INFO] Progress... {:3.0f}%'\ .format(count*100/len(x)), end='') # save noisy image samples if required if SAVE_NOISY: save_samples( noisy, SAMP_NOISY, randomize=True, seed=RANDOM_SEED, filename_prefix='gaussian_color_sigma_{}'.format(sigma), target_directory=OUTPUT_DIR_NOISY) # test models results = test_models(noisy, y, models) # update histories for hist_dict, res_dict in zip(histories, results): for key in res_dict.keys(): hist_dict[key].append(res_dict[key]) # save and plot histories save_and_plot_histories( file_id='gaussian_color', histories=histories, title='Change in accuracy with Gaussian color noise', xlabel='standard deviation (\u03c3)', ylabel='accuracy (\u0025)') return
def test_salt_and_pepper(x, y, models): # initialize histories histories = init_histories({'density': densities}) # run tests for density in densities: # apply salt and pepper noise print('[INFO] Applying salt and pepper noise with density={}'\ .format(density)) noisy = [] count = 0 for image in x: noisy.append( imdegrade(image, 'salt_and_pepper', density=density, seed=RANDOM_SEED)) count += 1 print('\r[INFO] Progress... {:3.0f}%'\ .format(count*100/len(x)), end='') # save noisy image samples if required if SAVE_NOISY: save_samples( noisy, SAMP_NOISY, randomize=True, seed=RANDOM_SEED, filename_prefix='salt_and_pepper_density_{}'.format(density), target_directory=OUTPUT_DIR_NOISY) # test models results = test_models(noisy, y, models) # update histories for hist_dict, res_dict in zip(histories, results): for key in res_dict.keys(): hist_dict[key].append(res_dict[key]) # save and plot histories save_and_plot_histories( file_id='salt_and_pepper', histories=histories, title='Change in accuracy with salt and pepper noise', xlabel='noise density', ylabel='accuracy (\u0025)') return
def test_jpeg_quality(x, y, models): # initialize histories histories = init_histories({'image_quality': qualities}) # run tests for quality in qualities: # apply jpeg compression print('[INFO] Applying JPEG compression with quality={}'\ .format(quality)) noisy = [] count = 0 for image in x: noisy.append( imdegrade(image, 'jpeg_compression', quality=quality, seed=RANDOM_SEED)) count += 1 print('\r[INFO] Progress... {:3.0f}%'\ .format(count*100/len(x)), end='') # save noisy image samples if required if SAVE_NOISY: save_samples(noisy, SAMP_NOISY, randomize=True, seed=RANDOM_SEED, filename_prefix='jpeg_quality_{}'.format(quality), target_directory=OUTPUT_DIR_NOISY) # test models results = test_models(noisy, y, models) # update histories for hist_dict, res_dict in zip(histories, results): for key in res_dict.keys(): hist_dict[key].append(res_dict[key]) # save and plot histories save_and_plot_histories(file_id='jpeg_quality', histories=histories, title='Change in accuracy with JPEG quality', xlabel='image quality', ylabel='accuracy (\u0025)', invert_xaxis=True) return