赞
踩
代码已测试过,可以直接使用。
- from os import path
- import math
- import numpy as np
- import cv2 as cv
- import matplotlib.pyplot as plt
- from utils import *
- from ipywidgets import interact
-
- fingerprint = cv.imread('samples/sample_1_1.png', cv.IMREAD_GRAYSCALE)
- show(fingerprint, f'Fingerprint with size (w,h): {fingerprint.shape[::-1]}')
- # Calculate the local gradient (using Sobel filters)
- gx, gy = cv.Sobel(fingerprint, cv.CV_32F, 1, 0), cv.Sobel(fingerprint, cv.CV_32F, 0, 1)
- show((gx, 'Gx'), (gy, 'Gy'))
- fingerprint = cv.imread('samples/sample_1_1.png', cv.IMREAD_GRAYSCALE)
- show(fingerprint, f'Fingerprint with size (w,h): {fingerprint.shape[::-1]}')
Fingerprint with size (w,h): (256, 364) |
- gx, gy = cv.Sobel(fingerprint, cv.CV_32F, 1, 0), cv.Sobel(fingerprint, cv.CV_32F, 0, 1)
- show((gx, 'Gx'), (gy, 'Gy'))
Gx | Gy |
- sum_gm = cv.boxFilter(gm, -1, (25, 25), normalize = False)
- show(sum_gm, 'Integral of the gradient magnitude')
Gx**2 | Gy**2 | Gradient magnitude |
- sum_gm = cv.boxFilter(gm, -1, (25, 25), normalize = False)
- show(sum_gm, 'Integral of the gradient magnitude')
Integral of the gradient magnitude |
- thr = sum_gm.max() * 0.2
- mask = cv.threshold(sum_gm, thr, 255, cv.THRESH_BINARY)[1].astype(np.uint8)
- show(fingerprint, mask, cv.merge((mask, fingerprint, fingerprint)))
<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。