Beispiel #1
0
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')
Beispiel #2
0
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')
Beispiel #3
0
# 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)
Beispiel #4
0
    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')
Beispiel #7
0
    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"
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')