- 締切済み
Image Jを使った蛍光粒子の面積を測定する方
Image Jを使って蛍光粒子の面積を測定する方法について質問です。 本日Image Jを使い始めた初心者です。 現在、以下の画像にあるような蛍光粒子の画像解析をしているのですが、それぞれの粒子の蛍光強度が異なるため、面積が正確に測定できません。 例えば、(1)の粒子は(2)に比べて大きいため蛍光強度にかなり差があります。 (1)の面積を測定しようと閾値を設定すると、(2)の輝度が設定した閾値以下になるため測定できず、反対に(2)に合わせて閾値を低めに設定すると、(1)の散乱している緑色光も拾ってしまうため、面積が過大評価されてしまいます。 ちなみに閾値は、画像を8bitに変換後、Thresholdでアルゴリズムを”Minimum”に設定することで決定しています。 そこで、それぞれの粒子を選択して(Rectangleで該当箇所を選択し)同様の手順で閾値を設定しようと思ったのですが、それはできないみたいで(同一画像内ではひとつの閾値しか設定できない?)、それぞれの粒子をトリミングして別々の画像にすることで測定しようと思いました。 ただ、トリミングした画像をImage Sequenceでまとめて解析しようとすると、一枚の画像として認識されるみたいで、また同じような問題が発生してしまいます。 以上の理由で、現在トリミングした画像を1枚1枚処理しなければならない状況です。 このような画像が何百枚もあるので、1枚の画像につき1粒の粒子を解析しようとすると大変非効率です。 もっと良い方法はないでしょうか? どなたか親切な方、お願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nagata2017
- ベストアンサー率33% (6881/20351)
蛍光の面積ですか。その合計。 2次元の形の面積を計算する方法としては 方眼紙を重ねて その目を数えるという方法があります。 升目を全てカバーしているところは1 升目の一部分をカバーしているところを1/2とカウントして その合計です。 1%も99%も1/2とカウントするのです。
- wek00
- ベストアンサー率61% (91/147)
私も思いつきをひとつ。 前処理で、画像処理で明るい部分の周りに広がった裾野を除去できないものか →輝度の変化が大きい部分を検出するのは微分フィルタでできる。輝度変化が大きいところをマスクするとか減衰させるとかは?小さい点ほど削られる影響が強く出て過小評価になるかもですが。 微分フィルタ: http://apple.ee.uec.ac.jp/COMPROG/handout/comprog11.pdf プログラミング演習 第11回 エッジを検出する デ・ブラー系: http://home.catv.ne.jp/dd/pub/deconv/deconv.html 画像回復、ブラインド・デコンボリューション(Blind deconvolution) 片山泰男 (2013/1/1) https://jp.mathworks.com/help/images/examples/deblurring-images-using-the-blind-deconvolution-algorithm.html ブラインド デコンボリューション アルゴリズムを使用したイメージのブレ除去 - MATLAB & Simulink Example - MathWorks 日本 http://www.mediacy.jp/products/aqi/whatisdeconv.html デコンボリューションソフト「AutoQuantX」(株)日本ローパー メディアサイバネティクス事業部
- hikkyhokky
- ベストアンサー率61% (39/63)
うまくいくかどうか確信が無いのですが、思いつきをひとつ。 明度の差が大きいと言う事ですが、明度を対数に変換すると差が減ると思います。Image Jでできるかどうか分かりませんが、イメージファイルを2次元数値ファイルとして扱えるソフト(Igorなど)を使うと簡単にできると思います。また、イメージ取り込み段階で、明るさ方向のビット数(z軸とでもいいましょうか)を可能な限り大きくされるのが大事だと思います。 あるいは、画像処理ソフト(Photoshopのような)で、明度の最適化、続けて2値化して、面積を出すのも簡単かもしれないです。 これらの処理ができるシェアウエアもあります。(いま、名前を思い出せないのですが。。。)