opencv-python 指静脉的ROI(感兴趣区域)提取(原理+代码)
静脉采集过程中,由于手指自由度比较大,所以可能会有手指旋转,平移等现象,这有可能使得同一个手指的两次采集图像差别较大。这是我们不希望看到的。所以对图像进行ROI的提取非常有必要,也是图像预处理的一个过程。 本文:阐述我是如何对一张图片进行指节的区分的 原理:由于指节的两端有关节腔,而关节腔内部主要是软骨和组织液,这样会使得在图片中关节腔的位置会比较亮,而根据这一特点,我们就可以方便的知道指节是哪个位置了。 代码及其原理: import cv2 as cv import numpy as np from matplotlib import pyplot as plt test_1= cv.imread('test_1.bmp',0) test0=cv.imread('test.bmp',0) gray_map=test0[240] gray_map_1=test_1[240] plt.plot(gray_map);plt.show() plt.plot(gray_map_1);plt.show() test0和test_1是我们用来实践的两张图(不同手指,网页存在拉伸): 在代码中,两句plt.plot()可以让我们清楚的看到在图像腰部的位置([240])的灰度分布 (上:test0,下test_1) 接下来只要找到灰度值最高的地方就大概是关节腔的位置了。