16

ここMatlabで行われたことに沿って、顕微鏡で撮影した画像から細胞をセグメント化するにはどうすればよいですか?

http://blogs.mathworks.com/steve/2006/06/02/cell-segmentation/

また、異なる蛍光チャネルで複数の画像を撮影した場合(抗体/メーカーで細胞を染色した後)、各マーカーに陽性の細胞の割合を自動的に定量化するにはどうすればよいですか?Pythonでこのようなことをした人はいますか?または、これを行うために使用できるPythonのライブラリはありますか?

4

4 に答える 4

7

これは、 OpenCVライブラリを使用して Python で実行できます。

特に、次の機能に興味があります。

  • ヒストグラム ストレッチ ( cv.EqualizeHist)。これは現在の Python API にはありませが、OpenCV の最新の SVN リリースをダウンロードすると使用できます。この部分は表示のみを目的としており、同じ結果を得る必要はありません
  • 画像のしきい値処理
  • 侵食などの形態学的操作(拡張、開く、閉じるなども)
  • cv.FindContoursを使用して、バイナリ イメージ内のブロブの輪郭を決定します。この質問を参照してください。Python ではなく C を使用していますが、API は実質的に同じであるため、そこから多くを学ぶことができます。
  • 流域のセグメンテーション (使用cv.Watershed--存在しますが、何らかの理由でマニュアルで見つけることができません)

それを念頭に置いて、OpenCV を使用して matlab の記事と同じ結果を得る方法を次に示します。

  1. 経験的に決定されたしきい値 (または大津の方法) を使用して画像をしきい値処理します。
  2. 画像に膨張を適用してギャップを埋めます。必要に応じて、前のしきい値処理ステップの前に画像をぼかします。これにより、小さな「穴」も削除されます。
  3. を使用してアウトラインを決定するcv.FindContours
  4. 必要に応じて、輪郭をペイントします
  5. ブロブ情報を使用して、元の画像の各ブロブを反復処理し、各ブロブに個別のしきい値を適用して細胞核を分離します (これが彼らのimextendedmax操作が行っていることです)
  6. 必要に応じて、核にペイントします
  7. 流域変換を適用する

私はこれを試したことがないので (申し訳ありませんが、今は時間がありません)、まだコードをお見せすることはできません。しかし、OpenCV での私の経験に基づいて、ステップ 7 までのすべてがうまく機能すると確信しています。OpenCV の流域変換を使用したことはありませんが、ここで機能しない理由がわかりません。

私が示した手順を実行してみて、問題がある場合はお知らせください。より多くの人があなたを助けることができるように、必ずソースを投稿してください。

最後に、細胞の染色とその存在の定量化に関する質問に答えるために、使用している色素を知ることは非常に簡単です. たとえば、赤色の色素で染色された細胞を特定するには、画像から赤色のチャネルを抽出し、強度の高い領域を (おそらくしきい値処理によって) 調べます。

于 2011-04-06T02:48:49.540 に答える
5

pythonvision.org のチュートリアルを読みましたか?

http://pythonvision.org/basic-tutorial

それはあなたが探しているものと非常に似ています。

于 2011-04-06T17:45:10.017 に答える
2

もう 1 つ追加します: cellprofiler.org (オープン ソースの細胞画像解析ソフトウェア、Python で)

于 2011-04-10T21:25:11.813 に答える
1

このライブラリも役立つ場合があります。

https://github.com/luispedro/pymorph/

OpenCV ライブラリよりも簡単に移動できることがわかりました。

于 2011-04-06T14:19:32.477 に答える