今回はImageJのROIに関する記事です。
ROIとは、Region of Interestの略称で、
日本語に直訳すると関心領域となります。
例えば、こんな画像があったとします。

解析に使いたいのは赤丸で囲ったところだけで、
他のところはどうでもいい。とします。
その場合、赤丸以外のところを無視して、
赤丸の中だけを解析する。
つまり赤丸の中だけが関心領域。というわけです。
このように、例のような赤丸で領域を囲むことを、
ROI(ロイ)を切る。なんて言ったりもします。
では、このROIの切り方も含めて、
少し発展的なROI Managerの使い方についても解説していきます。
この使い方が理解できれば、題名のように、
複数画像がある場合に、
まったく同じ位置でROIを切ることができるようになります。
複数画像のまったく同じ位置に、
ROIを適用する方法が理解できる。
Youtubeチャンネルにさまざまな動画を上げています。
↓↓↓こちらからYoutubeチャンネルにアクセス!! ↓↓↓
本ブログはアフィリエイトを用いた広告を掲載しています。
まずは画像を2枚用意する
今回は、2枚の画像を用意しましょう。
理由としては、同じROIを2枚の画像で適用するためですね。
例えば、こんな2枚の画像を使ってみましょう。


ねじを選んだ理由は特にありません笑
似たような画像ということでこの2枚を選びました。
単純にROIを切るだけならこれでOK
単純にROIを切って、観察領域を設定するだけなら、
これだけでOKです。
この黄色い線で囲まれたところがROI(観察領域)です。
黄色い線で囲む方法ですが、
ツールバーの□や〇のボタンを押して、
実際に囲みたいところをマウスでクリックしていけばOKです。

単純にROIを切るだけならこれで終了です。
とっても簡単だし、直感的でいいですよね。
ROIを切った後に何ができるか?の例
ROIとは、日本語に訳すと、【関心領域】となることは冒頭でもお伝えしました。
関心領域ですから、今回の場合はROIで囲んだネジのところだけの数値を出すことが可能になります。
例えば一例としてこのようなことができます。
ROI内だけで輝度の分布をみる
まずはROIを切らない状態で輝度の分布をみてみましょう。
輝度の分布を見るには、ヒストグラムを見るのが手っ取り早いです。
ヒストグラムは、Analyzeタブのヒストグラムを選ぶか、
Ctrlキーを押しながらHキーを押すと表示されます。

こんな感じのヒストグラムになりました。
つづいて、ROIを切った状態のヒストグラムを見てみましょう。

輝度の分布が変わっているのがわかりますね。
輝度の低めのところが切れているのがわかります。
ROI内で輝度の閾値を設定して面積を求める
面積を求める方法ですが、これは以前バナナの画像を使って
狙った色で閾値を決めて面積を求めました。
↓↓その時の記事↓↓
今回は、単純に輝度の情報を閾値にして面積を求めてみましょう。
閾値を設定する
輝度を使って閾値を決めるのですが、
今回はカラー画像を使っているため、輝度情報がRGBすべて入ってしまって、
どの輝度情報を閾値にするか決める必要があります。
というわけで、とりあえず難しいことは考えずに、
この画像を8bitの白黒画像に変換しましょう。
ImageタブのTypeから8bitを選択します。


すると、このように白黒画像に変わります。


白黒画像にできたところで、
輝度を使って閾値を決める方法について解説します。
ImageタブのThresholdを使います。


選択すると、バーが出てきて、左右に動かすことで、
赤い表示が増えたり減ったりします。


この赤くなっている箇所が、閾値内に入っている部分となります。
この画面の設定では、輝度が62以下の部分が閾値内となり、
その部分が赤く表示されています。今回は62を閾値としてみましょう。
ROIを切らずにとりあえず面積を求める
閾値を設定したところで、
Measureしてみましょう。Ctrlキーを押しながらMキーを押すと、
このようにResultsウィンドウが表示されます。


面積はAreaという項目で、単位はpix(画像の粒だと思って下さい)です。
閾値を変えて面積を測ってみましょう。
もしも、閾値を変えても面積が変わらない、
もしくはAreaという項目が表示されない場合は次のように対応しましょう。
どちらもSet Measurementsというウィンドウで設定する必要があります。
Set Measurementsのウィンドウの出し方は、
AnalyzeタブのSet Measurementsを選択すればOKです。


閾値を変えても面積が変わらない場合
閾値を変えても面積が変わらないなら、
この設定を確認する必要があります。


Limit to thresholdという項目です。
これは、Measureを実行するときに、Thresholdつまり閾値を
考慮しますか?という項目です。
今回閾値によって面積を制限したいので、
当然チェックを入れる必要があります。
ですから、チェックが入った状態が正解です。
Areaが表示されない場合
続きまして、Results画面にAreaが表示されない場合は、
同じくSet Measurementsのウィンドウの、
Areaにチェックを入れてください。


お気づきかもしれませんが、
Area以外にもたくさんのチェックボックスがあります。
これらは、必要に応じてチェックを入れることで、
Mesureしたときの結果に追加させることができます。
よく使うものだと、Area以外だと、Medianとかでしょうかね?
Medianは中央値のことですね。
必要に応じて追加してみてください。
重要なのは、ここで測定項目を追加できると知っておくことです。
ROIを切って面積を求める
ここまではただ閾値内の面積を求めるだけでしたが、
ここにROIを追加してみましょう。
といっても難しいことはなにもなく、
ただマウスで直感的に範囲を指定してあげるだけです。
このように、範囲指定してあげると、
全体の面積の一部分が選択されていることがわかりますね。


ROIを切らなかった場合は、10515pixだったのが、
ROIの範囲の閾値内の面積は2341pixというわけです。
輝度が閾値以内で、かつROIの内側にある面積を求める
ということですね。簡単ですよね。
複数の画像を使って、同じROIを使いまわす方法
さて、ここまででROIの重要性と使い道についてお伝えしてきましたが、
同じような複数画像を取り扱うときに少しひっかかる問題が発生します。
それが、「まったく同じ位置のROIを他の画像にも適用したい。」
こういった時ですね。
例えば画像に映っているものが移動せず、
かつ撮影条件も一緒で、時間だけが経過している場合。
この場合は、当然何も動いていないですから、ROIも固定したいですよね?
でも、手でROIを切ると、
時間経過後の画像でも手で正確にROIを切らないといけません。
そんなの現実的ではないですよね???
というわけで、同じROIの範囲を
他の画像に使いまわす方法をご紹介します。
手順1:まずは普通に手でROIを切る。
これは先ほどのROIを切る方法と同じです。
ツールバーの好きな図形を選択して、
画像から観察領域を指定してください。
手順2:ROI Managerを起動してROIを登録する。
ここからがポイントになります。
手で指定したROIの範囲を、一度ROI Managerの機能を使って登録します。
詳しい手順について解説していきます。
手順は以下の通りです。
ROI Managerを起動する


Analyze⇒Tools⇒ROI Managerと選択すると、
このようにROI Managerが起動します。


ROI Managerに現在選択しているROIを登録する
ROI Managerが起動したところで、
既に手作業で指定したROIをROI Managerに登録しましょう。
登録方法は、手作業でROIを切った画像をアクティブにして、
ROI ManagerのAddボタンを押すだけです。


実際に例を使って解説していきましょう。
手順3:ほかの画像にROIを適用する。
手順2までの手順通りに進めていれば、
手作業で設定したROIがROI Managerに登録されています。
登録されていれば、このように数字が表示されているはずです。


この場合だと、0263-0287ですね。
このことが確認出来たら、
1枚目のROIと同じROIを適用したい画像をアクティブにします。
その後、このROI Managerの登録されている左の数字をクリックします。今回の場合は0263-0287ですね。
すると、このように画像上のまったく同じ位置に
ROIが設定できます。


今回のまとめ:ROIの取り扱いをマスターすると便利。
今回は、1枚手作業でROIを設定した後、
そのROIを使いまわす方法についてご紹介しました。
今回紹介した内容が効果を発揮するのは、
同じ画角で撮影されていて、かつ観察対象物が画面上のどこかに固定されている場合です。
この条件だと、必ず観察対象物はどこにあるかわかるので、
ROIを切るのも同じところでいいわけです。
ただ、今回ご紹介した方法を使わないで手作業で全部やろうとすると、
わずかな数pixのずれが発生したり、
そもそもそんなに時間をかけられない…なんてことにもなりかねません。
ですから、ぜひ今回ご紹介したROI Managerを使って
ROIを使いまわす方法をマスターしてみてくださいね!
コメント