def filters_eq(image, use_acceleration=True): if not use_acceleration: from pyradar.filters.frost import frost_filter from pyradar.filters.kuan import kuan_filter from pyradar.filters.lee import lee_filter from pyradar.filters.lee_enhanced import lee_enhanced_filter from pyradar.filters.mean import mean_filter else: from pyradar.filters.accelerated.frost import frost_filter from pyradar.filters.accelerated.kuan import kuan_filter from pyradar.filters.accelerated.lee import lee_filter from pyradar.filters.accelerated.lee_enhanced import lee_enhanced_filter from pyradar.filters.accelerated.mean import mean_filter from pyradar.filters.median import median_filter # filters parameters winsize = 15 # window size k_value1 = 2.0 # damping factor for frost k_value2 = 1.0 # damping factor for lee enhanced cu_value = 0.25 # coefficient of variation of noise cu_lee_enhanced = 0.523 # coefficient of variation for lee enhanced of noise cmax_value = 1.73 # max coefficient of variation for lee enhanced # frost filter tic('Frost') image_frost = frost_filter(image, damping_factor=k_value1, win_size=winsize) toc() tic('Kuan') image_kuan = kuan_filter(image, win_size=winsize, cu=cu_value) toc() tic('Lee') image_lee = lee_filter(image, win_size=winsize, cu=cu_value) toc() tic('Lee_ench') image_lee_enhanced = lee_enhanced_filter(image, win_size=winsize, k=k_value2, cu=cu_lee_enhanced, cmax=cmax_value) toc() show_image([(image, 'original'), (image_frost, 'Frost'), (image_kuan, 'Kuan'), (image_lee, 'Lee'), (image_lee_enhanced, 'lee_e')]) # kuan filter # tic('Kuan') # toc() # show_image([(image, 'original'), (image_kuan, 'Kuan') ]) # exit() # # lee filter exit() # lee enhanced filter show_image(image_lee_enhanced, 'Enchanced Lee')
# filters parameters # window size winsize = 9 # damping factor for frost k_value1 = 2.0 # damping factor for lee enhanced k_value2 = 1.0 # coefficient of variation of noise cu_value = 0.25 # coefficient of variation for lee enhanced of noise cu_lee_enhanced = 0.523 # max coefficient of variation for lee enhanced cmax_value = 1.73 # frost filter image_frost = frost_filter(image, damping_factor=k_value1, win_size=winsize) # kuan filter image_kuan = kuan_filter(image, win_size=winsize, cu=cu_value) # lee filter image_lee = lee_filter(image, win_size=winsize, cu=cu_value) # lee enhanced filter image_lee_enhanced = lee_enhanced_filter(image, win_size=winsize, k=k_value2, cu=cu_lee_enhanced, cmax=cmax_value) # mean filter image_mean = mean_filter(image, win_size=winsize) # median filter image_median = median_filter(image, win_size=winsize)
def test_all(self): image_path = os.path.join(IMAGES, "DAT_01.001") print image_path dataset = create_dataset_from_path(image_path) band = get_band_from_dataset(dataset) geoinfo = get_geoinfo(dataset, cast_to_int=True) xoff = geoinfo['xoff'] + 2000 yoff = geoinfo['yoff'] + 2000 ## Parameters: win_xsize = 100 # window size in coord x win_ysize = 100 # window size in coord y k = 1 # parameter of frost filter, ex: k=1 or k=10 or k=100 win_size = 3 # size of the window for the filter function damping_factor = 1 # parameter of frost filter, ex: 1 or 10 or 1000 image = read_image_from_band(band, xoff, yoff, win_xsize, win_ysize) # Try K-Means kmean_timer = Timer() n_classes = 8 iterations = 1000 class_image = kmeans_classification(image, n_classes, iterations) kmean_timer.stop_timer() kmean_timer.calculate_time_elapsed(print_value=True) # Try Isodata isodata_timer = Timer() parameters={"K": 8, "I":1000} class_image = isodata_classification(image,parameters=parameters ) isodata_timer.stop_timer() isodata_timer.calculate_time_elapsed(print_value=True) numerito = parameters["K"] # Try the filters filter_timer = Timer() numerito = 11 cucito = 0.30 image_filtered = mean_filter(image, win_size=numerito) image_filtered = median_filter(image,win_size) image_filtered = frost_filter(image, damping_factor=1.0, win_size=11) image_filtered = kuan_filter(image, win_size=7, cu=1.0) image_filtered = lee_filter(image, win_size=numerito, cu=cucito) image_filtered = lee_enhanced_filter(image, win_size=numerito, cu=cucito) filter_timer.stop_timer() diff = filter_timer.calculate_time_elapsed(print_value=True) # Frost y K-Means ventana = 7 damp = 1.0 # parameters={"K" : 5, "I" : 100} # _timer = Timer() # image_filtered = frost_filter(image, damping_factor=damp, win_size=ventana) class_image = isodata_classification(image_filtered, parameters) # # _timer.stop_timer() _timer.calculate_time_elapsed(print_value=True) # image_corrected = equalization_using_histogram(class_image) save_image(IMG_DEST_DIR, "image_" + str(ventana) + "frostisodata" + str(damp) + "c" + str(parameters["K"]), image_corrected) # # # Equalize and save the images to files image_corrected = equalization_using_histogram(class_image) save_image(IMG_DEST_DIR, "image_isodata8", image_corrected) # image_original = equalization_using_histogram(image) save_image(IMG_DEST_DIR, "image_original", image_original) print "\a\a\a"
from pyradar.filters.mean import mean_filter # filters parameters # window size winsize = 9 # damping factor for frost k_value1 = 2.0 # damping factor for lee enhanced k_value2 = 1.0 # coefficient of variation of noise cu_value = 0.25 # coefficient of variation for lee enhanced of noise cu_lee_enhanced = 0.523 # max coefficient of variation for lee enhanced cmax_value = 1.73 # frost filter image_frost = frost_filter(image, damping_factor=k_value1, win_size=winsize) # kuan filter image_kuan = kuan_filter(image, win_size=winsize, cu=cu_value) # lee filter image_lee = lee_filter(image, win_size=winsize, cu=cu_value) # lee enhanced filter image_lee_enhanced = lee_enhanced_filter(image, win_size=winsize, k=k_value2, cu=cu_lee_enhanced, cmax=cmax_value) # mean filter image_mean = mean_filter(image, win_size=winsize) # median filter image_median = median_filter(image, win_size=winsize)
def write_image(img, filename): """ Write img array to a file with the given filename Args: img (Band) filename (str) """ x_size = img.shape[1] y_size = img.shape[0] dataset = driver.Create(filename, x_size, y_size) dataset.GetRasterBand(1).WriteArray(img) # load original image dataset = gdal.Open('img/mozambique-after-subset.tif') band = dataset.GetRasterBand(1) img = band.ReadAsArray() # lee filter img_lee = lee_filter(img, win_size=3) write_image(img_lee.astype(np.uint8), 'img/mozambique-after-subset-lee.tif') # frost filter img_frost = frost_filter(img, win_size=3) write_image(img_frost.astype(np.uint8), 'img/mozambique-after-subset-frost.tif') # kuan filter img_kuan = kuan_filter(img, win_size=3) write_image(img_kuan.astype(np.uint8), 'img/mozambique-after-subset-kuan.tif')
driver = gdal.GetDriverByName('GTiff') def write_image(img, filename): """ Write img array to a file with the given filename Args: img (Band) filename (str) """ x_size = img.shape[1] y_size = img.shape[0] dataset = driver.Create(filename, x_size, y_size) dataset.GetRasterBand(1).WriteArray(img) # load original image dataset = gdal.Open('img/mozambique-after-subset.tif') band = dataset.GetRasterBand(1) img = band.ReadAsArray() # lee filter img_lee = lee_filter(img, win_size=3) write_image(img_lee.astype(np.uint8), 'img/mozambique-after-subset-lee.tif') # frost filter img_frost = frost_filter(img, win_size=3) write_image(img_frost.astype(np.uint8), 'img/mozambique-after-subset-frost.tif') # kuan filter img_kuan = kuan_filter(img, win_size=3) write_image(img_kuan.astype(np.uint8), 'img/mozambique-after-subset-kuan.tif')