我试图找出一种在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和cv2.inRange()来消除废话。如果您找不到正确的值,请制作一个跟踪栏。

  • python - 使用opencv标记静脉-LMLPHP
  • 与握住它的手的皱褶相比,您的皮肤更光滑。将Canny edge与适当的参数一起使用,稍微扩张一下,然后通过anding过滤掉高频部分。

  • python - 使用opencv标记静脉-LMLPHP
  • CLAHE
  • 自适应阈值
  • 形态和噪声消除操作。

  • 改善输出的建议:
  • 最好只用手臂获得更好的图像设置。
  • 找出CLAHE,阈值,Canny
  • 的适当参数

    python - 使用opencv标记静脉-LMLPHP

    07-27 19:25