Exemple #1
0
def process(nameImage):
    # result = fingerprint_pipline('101_3.tif')
    output_dir = './output/'
    block_size = 16

    im = cv.imread('./input/' + nameImage, 0)
    normalized_img = normalize(im.copy(), float(100), float(100))

    # ROI and normalisation
    (segmented_img, normim,
     mask) = create_segmented_and_variance_images(normalized_img, block_size,
                                                  0.2)

    # orientations
    angles = orientation.calculate_angles(normalized_img,
                                          W=block_size,
                                          smoth=False)
    orientation_img = orientation.visualize_angles(segmented_img,
                                                   mask,
                                                   angles,
                                                   W=block_size)

    # find the overall frequency of ridges in Wavelet Domain
    freq = ridge_freq(normim,
                      mask,
                      angles,
                      block_size,
                      kernel_size=5,
                      minWaveLength=5,
                      maxWaveLength=15)

    # create gabor filter and do the actual filtering
    gabor_img = gabor_filter(normim, angles, freq)

    # thinning oor skeletonize
    thin_image = skeletonize(gabor_img)

    # minutias
    (minutias, result_minutias) = calculate_minutiaes(thin_image)

    # singularities
    (singularities_img,
     result_singulares) = calculate_singularities(thin_image, angles, 1, 15,
                                                  mask)

    # visualize pipeline stage by stage
    output_imgs = [
        im, normalized_img, segmented_img, orientation_img, gabor_img,
        thin_image, minutias, singularities_img
    ]
    for i in range(len(output_imgs)):
        if len(output_imgs[i].shape) == 2:
            output_imgs[i] = cv.cvtColor(output_imgs[i], cv.COLOR_GRAY2RGB)
    results = np.concatenate([
        np.concatenate(output_imgs[:4], 1),
        np.concatenate(output_imgs[4:], 1)
    ]).astype(np.uint8)

    cv.imwrite(output_dir + nameImage + '.png', results)
    return result_minutias, result_singulares
def prediction(args):
    thetas = load_thetas()
    kms, prices = load_dataset()
    norm_mileage = normalize(args.mileage, kms)
    estimation = estimate_price(*thetas, norm_mileage)
    if sum(thetas) != 0:
        estimation = denormalize(estimation, prices)

    print(f"Estimation for {args.mileage} is {round(estimation, 2)}")
def fingerprint_pipline(input_img):
    block_size = 16

    # pipe line picture re https://www.cse.iitk.ac.in/users/biometrics/pages/111.JPG
    # normalization -> orientation -> frequency -> mask -> filtering

    # normalization - removes the effects of sensor noise and finger pressure differences.
    normalized_img = normalize(input_img.copy(), float(100), float(100))

    # color threshold
    # threshold_img = normalized_img
    # _, threshold_im = cv.threshold(normalized_img,127,255,cv.THRESH_OTSU)
    # cv.imshow('color_threshold', normalized_img); cv.waitKeyEx()

    # ROI and normalisation
    (segmented_img, normim,
     mask) = create_segmented_and_variance_images(normalized_img, block_size,
                                                  0.2)

    # orientations
    angles = orientation.calculate_angles(normalized_img,
                                          W=block_size,
                                          smoth=False)
    orientation_img = orientation.visualize_angles(segmented_img,
                                                   mask,
                                                   angles,
                                                   W=block_size)

    # find the overall frequency of ridges in Wavelet Domain
    freq = ridge_freq(normim,
                      mask,
                      angles,
                      block_size,
                      kernel_size=5,
                      minWaveLength=5,
                      maxWaveLength=15)

    # create gabor filter and do the actual filtering
    gabor_img = gabor_filter(normim, angles, freq)

    # thinning oor skeletonize
    thin_image = skeletonize(gabor_img)

    # minutias
    minutias, pos = calculate_minutiaes(thin_image)

    # singularities
    #singularities_img = calculate_singularities(thin_image, angles, 1, block_size, mask)

    # visualize pipeline stage by stage

    return minutias, pos
def fingerprint(input_img):
    block_size = 16

    # pipe line picture re https://www.cse.iitk.ac.in/users/biometrics/pages/111.JPG
    # normalization -> orientation -> frequency -> mask -> filtering

    # normalization - removes the effects of sensor noise and finger pressure differences.
    normalized_img = normalize(input_img.copy(), float(100), float(100))

    # color threshold
    # threshold_img = normalized_img
    # _, threshold_im = cv.threshold(normalized_img,127,255,cv.THRESH_OTSU)
    # cv.imshow('color_threshold', normalized_img); cv.waitKeyEx()

    # ROI and normalisation
    (segmented_img, normim,
     mask) = create_segmented_and_variance_images(normalized_img, block_size,
                                                  0.2)

    # orientations
    angles = orientation.calculate_angles(normalized_img,
                                          W=block_size,
                                          smoth=False)
    orientation_img = orientation.visualize_angles(segmented_img,
                                                   mask,
                                                   angles,
                                                   W=block_size)

    # find the overall frequency of ridges in Wavelet Domain
    freq = ridge_freq(normim,
                      mask,
                      angles,
                      block_size,
                      kernel_size=5,
                      minWaveLength=5,
                      maxWaveLength=15)

    # create gabor filter and do the actual filtering
    gabor_img = gabor_filter(normim, angles, freq)

    # thinning oor skeletonize
    thin_image = skeletonize(gabor_img)

    # minutias
    minutias = calculate_minutiaes(thin_image)

    # singularities
    singularities_img = calculate_singularities(thin_image, angles, 1,
                                                block_size, mask)

    # visualize pipeline stage by stage
    output_imgs = [
        input_img, normalized_img, segmented_img, orientation_img, gabor_img,
        thin_image, minutias, singularities_img
    ]
    for i in range(len(output_imgs)):
        if len(output_imgs[i].shape) == 2:
            output_imgs[i] = cv.cvtColor(output_imgs[i], cv.COLOR_GRAY2RGB)
    results = np.concatenate([
        np.concatenate(output_imgs[:4], 1),
        np.concatenate(output_imgs[4:], 1)
    ]).astype(np.uint8)

    return results
def _normalize_dataset(kms, prices):
    normalized_kms = map(lambda km: normalize(km, kms), kms)
    normalized_prices = map(lambda price: normalize(price, prices), prices)
    return [Data(x, y) for x, y in zip(normalized_kms, normalized_prices)]