2017-09-13 61 views
1

私は、OpenCVを使ってイメージ内の静脈をPythonでマークする方法を見つけようとしていました。私が出会った同様の記事のほとんどは、結果を生み出すために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およびアウト区切るために画像を変換します。それで、静脈をマークするのが比較的簡単になります。また、静脈を見つけるために画像にROIを設定する可能性がある場合、問題はケーキです。 –

+0

あなたは手動でROIを設定することを意味しますか? –

+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) –

関連する問題