2017-09-13 109 views
1

我試圖找出一種在Python中使用OpenCV標記圖像中靜脈的方法。我遇到的大多數類似文章都使用CLAHE來產生結果,我在灰度圖像上多次進行了CLAHE,並且它確實使得靜脈更易於看到,但是我無法找出以不同顏色標記靜脈的方式。 CLAHE也會顯着降低整體圖像質量。使用opencv標記靜脈

我的輸入圖像:

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

首先將圖像轉換爲HSV和獨立出來的皮膚區域。然後標記靜脈變得相對容易。此外,如果有可能在圖像上設置投資回報率來尋找靜脈,問題就是小菜一碟。 –

+0

你的意思是手動設置投資回報率? –

+0

我不能那樣做。我想我的代碼是通用的。 這只是一個測試圖像。 :/ –

回答

0

下面是後續

的方法
  • 靜脈無法在手外找到。因此,通過將圖像轉換爲hsv和cv2.inRange()並使用較低,較高的皮膚值來消除廢話。如果你無法找出合適的值,請創建一個跟蹤欄。相比於手拿着它的褶皺

This

  • 你的皮膚更光滑。使用具有適當參數的Canny邊緣,稍微擴大一點,並通過and'ing過濾掉高頻部分。

enter image description here

  • CLAHE
  • 自適應閾值
  • 形態及噪聲消除操作。

建議,以改善輸出:

  1. 獲得更好的圖像設置,只有手臂理想。
  2. 圖出來CLAHE,閾值合適的參數,坎尼

enter image description here

+0

你使用OpenCV-Python嗎? –

+0

是的,但使用相同的python文件的另一個問題。嘗試按順序告訴我的步驟,並隨時在評論中詢問是否有錯誤。 –

+0

當然..會做(Y) –