2017-01-18 27 views
1

私は顕微鏡から画像を取得しており、それを分析する必要があります(ブロブを分離する)。私は、私に良い結果をもたらした画像を閾値処理してフィルタリングするために、多くの方法を試してきました。今、私は最良の結果を得ようとしています。OpenCV Laplacianを使用したブロブ検出器

私はラプラス演算子について読んで、Lapacian of Gaussを適用して画像のエッジであるゼロクロスを見つけました。ここで私は私の被写体像へthisコードを実装しました

、私はラプラス結果を表示することができますが、それは他の「空間」(深さ)でありますので、私はそれを「使用」する方法がわからない

です被験者画像とラプラス結果。ラプラス画像からブロブを取得するにはどうすればよいですか?

subject

laplacian

+0

それを試してみませんでしたが、多分(ガウス+)流域? – Soltius

+0

私は分水嶺に入りましたが、非常に貧弱なセグメンテーションを受けました – sebasira

答えて

0

すでに入力画像にラプラスを行っているので、あなたがする必要がある次のステップは次のとおりです。

  • しきい値バイナリイメージを取得する画像。

  • バイナリイメージ内の輪郭(ブロブ)を検索します。

サンプルコードは次のようになります。

laplacian_img_RGB = cv2.cvtColor(laplacian_img, cv2.COLOR_GRAY2BGR) 

ret, thresh = cv2.threshold(laplacian_img, 140, 255, cv2.THRESH_BINARY) 

img, contours, hierarchy = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 

# For debugging Purposes 
for i in xrange(len(contours)): 
    laplacian_img_RGB = cv2.drawContours(laplacian_img_RGB, contours, i, [0, 255, 0], 3) 

cv2.imwrite("./debug.png", laplacian_img_RGB) 
+0

問題はLaplacinaの結果(CV_64F)のピクセルの深さであり、CV_8深度の画像が必要であることを示唆したすべての手順が問題でした。しかし** convertScaleAbs **を使って解決しました – sebasira

関連する問題