使用opencv标记静脉

时间:2017-09-13 04:04:19

标签: python opencv image-processing

我试图找出一种在Python中使用OpenCV标记图像中的静脉的方法。我遇到的大多数类似文章都使用CLAHE来产生结果,我在灰度图像上多次进行CLAHE,它确实使静脉更容易观察,但我无法找到用不同颜色标记静脉的方法。 CLAHE还显着降低了整体图像质量。

我的输入图片:

img

CLAHE 4次后:

img

代码:

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()

1 个答案:

答案 0 :(得分:0)

以下是要遵循的方法 -

  • 静脉不能在外面找到。因此,通过将图像转换为具有低,高皮肤值的hsv和cv2.inRange()来消除废话。如果你无法弄清楚正确的值,请制作一个跟踪栏。

This

  • 与握住手上的褶皱相比,您的皮肤更光滑。使用具有适当参数的Canny边缘,稍微扩张并通过和'过滤掉高频部分。

enter image description here

  • CLAHE
  • 自适应阈值
  • 形态和噪音消除操作。

建议改善输出:

  1. 获得更好的图像设置,理想的只有手臂。
  2. 找出CLAHE,Thresholding,Canny
  3. 的正确参数

    enter image description here