由于指静脉由于采集时候手指的不固定,所以同一手指的不同照片可能会有旋转。我们提取手指的轮廓就是为了拟合出手指的中线,从而对手指的图片进行旋转矫正。
在opencv中提供了好几种方法供我们用来提取图片中物体的边界与轮廓。有Sobel算子,拉普拉斯算法等等,但是应用在我的图片上一点都不友好:
中间的是原图,不知道是不是因为我没有对原图进行平滑处理,如果用这两种算子来进行进一步的处理的话,难度巨大。但是在opencv中,还有一种十分友好的边缘检测的方法,他就是cv.Canny()
想了解原理和用法的话这里讲的非常清楚:
接下来展示一下这个函数的效果(网页原因图片被拉伸了)
效果很好,与轮廓无关的部分大大减少。
示例的源码:
import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
clahe_test=cv.imread('clahe_test.bmp'