使用opencv标记静脉
Posted
技术标签:
【中文标题】使用opencv标记静脉【英文标题】:Marking veins using opencv 【发布时间】:2017-09-13 04:04:18 【问题描述】:我试图找出一种在 Python 中使用 OpenCV 标记图像中静脉的方法。我遇到的大多数类似文章都使用 CLAHE 来产生结果,我在灰度图像上多次使用 CLAHE,它确实使静脉更容易看到,但我想不出用不同颜色标记静脉的方法。 CLAHE 还会显着降低整体图像质量。
我的输入图片:
CLAHE 4 次后:
代码:
import numpy as np
import cv2
def multi_clahe(img, num):
for i in xrange(num):
img = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(4+i*2,4+i*2)).apply(img)
return img
img = cv2.imread('img.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
final = multi_clahe(gray, 4)
cv2.imwrite('image.png',final)
cv2.imshow('image',final)
cv2.waitKey(0)
cv2.destroyAllWindows()
【问题讨论】:
先将图片转成hsv,分离出皮肤区域。然后标记静脉变得相对容易。此外,如果有可能在图像上设置 ROI 以找到静脉,那么问题就是小菜一碟。 你的意思是手动设置ROI? 我不能那样做。我希望我的代码是通用的。那只是一个测试图像。 :// 好的,添加你的代码,我看看有什么可以做得更好 它是基本的,但是.. 还是做了.. 【参考方案1】:下面是方法-
在手外找不到静脉。因此,通过将图像转换为具有低、高皮肤值的 hsv 和 cv2.inRange() 来消除废话。如果您无法确定正确的值,请制作一个跟踪栏。 与握着它的手上的褶皱相比,您的皮肤更光滑。使用具有适当参数的 Canny 边缘,稍微膨胀并通过 and'ing 过滤掉高频部分。 克拉赫 自适应阈值 形态和噪声去除操作。改善输出的建议:
-
获得更好的图像设置,理想情况下只有手臂。
找出合适的 CLAHE、Thresholding、Canny 参数
【讨论】:
你用过 OpenCV-Python 吗? 是的,但是在另一个问题上使用了相同的 python 文件。尝试我按顺序告诉的步骤,如果您有错误,请随时在 cmets 中询问。 肯定..会做(Y)以上是关于使用opencv标记静脉的主要内容,如果未能解决你的问题,请参考以下文章