之前写的都是有关于ROI的区域提取,但是对于提取到的区域我们需要提取它的特征,才可以在后期的特征匹配中排上用场。
这篇文章主要记录我是如何对指静脉图片做二值纹理特征提取的
原理:
一种比较特征提取简单的方法:用Gabor滤波器提取各个方向上的纹理,然后将他们融合在一起,做二值化处理。原理非常简单,但是我进行的过程十分艰辛。首先要了解什么是gabor滤波器,这篇文章可以让你有一个大概的认知。
而在opencv-python中,要获取一个gabor滤波器也很简单。
kern=cv.getGaborKernel(ksize, sigma, theta, lambd, gamma[, psi[, ktype]])
一句代码就可以了,看到这长长的参数列表你就应该明白我说的为什么过程会十分艰辛。因为gabor滤波器受到参数影响,所以你可能要花上大量的时间去寻找适合的参数。
这篇博客可以让你对各个参数有一个第一映像,但是这篇博客用的是C++,参数列表可能有点不一样,我按照python的参数列表做了一份明了的总结:
"""
gaborkernel 参数含义:
第一个参数:size 核的大小,一般为奇数
第二个参数:σ表示高斯函数的标准差,标准差越大,波纹起伏就越多
第三参数:θ 表示波纹的角度,弧度制 np.pi/5 这种
第四个参数:λ 表示波长,波长越长越密集
第五个参数:γ 表示椭圆的长短轴比,为1时为圆形
第六个参数:psi 表示相位偏移,-180~180变化,一般取0
第七个参数:类型,在python中一般为ktype=cv.CV

本文介绍了如何利用opencv-python的Gabor滤波器对指静脉图像进行纹理特征提取。通过调整参数找到合适的Gabor滤波器设置,对图像进行滤波并二值化处理,然后通过形态学操作得到最终的血管区域特征。虽然参数调整过程复杂,但最终实现了初步的特征提取效果。
最低0.47元/天 解锁文章
3665

被折叠的 条评论
为什么被折叠?



