バイオ系だけどプログラミング始めました

ImageJ (Fiji)の使い方や Python でのプログラミングなどを、主にバイオ系の研究者・大学院生向けに書いていこうと思います。

ブログの目次

このブログについて

ImageJ
ImageJ の画像解析について解説
ImageJ + Python
Python

10分でできる ImageJ 自動化

目次

  • 目次
  • この記事について
  • マクロの記録と実行
  • フォルダの中の画像に対して同じ処理をする
  • 簡単に解説

この記事について

この記事では、細かい仕組みなどは脇に置いといて ImageJ での解析のついて記述します。主に ImageJ のマクロと PythonJython)で書いていきます。解析の自動化の便利さを知ってプログラミングに足を踏み入れるきっかけになれば幸いです。

解析の例として、いつもと同じで芸がないですが米粒のカウントを例にして説明します。

続きを読む

バイオ系だけどまずはプログラムを動かしてみよう

目次

この記事について

この記事では、Python のプログラムを書いて、動作させる所までを解説します。

Python の説明とインストールについてはこちらの記事を読んでください。

バイオ系だけど Python を始めよう - バイオ系だけどプログラミング始めました

本記事では、ImageJ + Jython の記事で書いたのとは少し異なる種類の Python を用います。ImageJ Fiji + Python で画像解析プログラムを書こう(前編) - バイオ系だけどプログラミング始めました 詳しくはここを参考にしてください。

本記事は、上記の二つのリンクの記事を読んで Python(Anaconda)をインストール済みで、ある程度 Python の使い方や性質を知っている前提で書いています。先にそちらを読まれることをお勧めします。

続きを読む

ImageJ Fiji + Python で画像解析プログラムを書こう(後編)

目次

  • 目次
  • 後編について
  • 8. モジュールのインポート
  • 9. 画像データを扱う imagePlus
    • 練習問題
  • 10. ImageJ の機能を活用する
  • 11. 例1. 砂嵐のような画像を作る
  • 12. 例2. 米粒のカウントを複数の 画像に対して自動で行う

後編について

さて、これまで前編と中編では Python の基本について書いてきましたが、いよいよ ImageJ の機能を使いこなして解析の自動化などに関係することを書いていこうと思います。前編と中編の記事はこちら。

satoshithermophilus.hatenablog.com

satoshithermophilus.hatenablog.com

続きを読む

ランダムな砂嵐画像を作る ImageJ + Python のプログラム

目次

  • 目次
  • ランダムな砂嵐画像を作るプログラムのコード
  • コードの解説
    • random ライブラリ
    • ByteProcessor
    • IntByteConverter
    • コードの流れ
  • 実行例
  • 追記 6/27
  • 動画ver
    • 実行例
    • 動画ver 解説

ランダムな砂嵐画像を作るプログラムのコード

ImageJ + Python のプログラミングの例として書いてみました。 解説はまた今度書きます。しかし、そこまで長くないので、分からないモジュールや機能を調べてみてどのように動いているのか理解してみたり、いろんな数字を変化させて遊んでみるといいと思います。

6/27にコードの解説を追記しました。 知識的には、ImageJ Fiji + Python で画像解析プログラムを書こう(後編) - バイオ系だけどプログラミング始めましたまでを読んでいる前提で書いています。

続きを読む

ImageJ + Python の活用例:自動米粒解析プログラム

目次

  • 目次
  • 米粒自動解析プログラムの概要
  • コード
  • 練習問題

米粒自動解析プログラムの概要

satoshithermophilus.hatenablog.com

上の記事で解説した米粒の解析を自動化した Jython script です。

  1. フォルダを選ぶダイアログを開き、

  2. フォルダ内の tif 画像をすべて読み込み上記の記事で解説したのと同様の解析をし、

  3. 米粒の数を表示して、二値化画像と米の Roi と解析結果を保存する。

というプログラムになります。

続きを読む

ImageJ Fiji + Python で画像解析プログラムを書こう(中編)

目次

  • 目次
  • 前回の記事
  • ImageJ で Python を動かそう の続き
    • 3. 文字列
      • 練習問題 1
    • 4. リスト
    • 5. 繰り返し(for)
    • 6. 条件分岐(if)
      • 練習問題2
    • 7. 関数の定義
    • まとめ
      • まとめの練習問題
    • 次の記事

前回の記事

satoshithermophilus.hatenablog.com

ImageJ で Python を動かそう の続き

前回の記事もそうですが、書いてあるプログラムを自身で打ち込んで(書き写して)実行してみることをお勧めします。結構、打ち間違ってエラーが出たりしますが、どこが間違っているかはエラーメッセージを読めばわかるようになっています。プログラムを書くというのは、機械が理解できる言語を決まった文法にしたがって記述するということになります。言ってみれば外国語を勉強してしゃべるのと同じようなもんです。そんなに気負わずに楽しくやってみてください。もしも、プログラムが動かなかったり、エラーが出たりしたらコメントなどで気軽に相談してください。

3. 文字列

Python では文字列の操作が結構簡単にできます。文字列の扱いができると色々と便利です。例えば、ある名前のファイルだけ解析するとか、実行結果を文字で出力したりとか、解析結果を保存するファイル名を工夫したりとか・・・。普通に文字列を解析することもあるかもしれません。では文字列の操作を説明します。

Python ではダブルクオーテーション""もしくはクオーテーション''で囲むことで文字を表します。Hello World! を print() で表示したときに""で囲っていたことを思い出してください。文字列は「+」で結合することができます。

text1 = "Hello"
text2 = "World!"
text3 = text1 + text2
print(text3)

f:id:shatoshi:20170614153811j:plain

続きを読む

画像データの基本

目次

  • 目次
  • そもそも画像データってなんなのさ?
  • カラー画像
  • 画像データの種類

 

そもそも画像データってなんなのさ?

 とりあえず下の絵を見てください。

f:id:shatoshi:20170609122144j:plain

左のウィンドウがお米の写真(EMBL の Sample 画像、EMBL > Samples > rice.tiff で開ける)で、右のウィンドウがお米の写真の青い枠で囲ったところを拡大したものになります。この右の拡大した図をみればわかるように、画像データは小さな四角ピクセル・pixel と言います)から成ります。

ImgeJ のメインウィンドウの下を見ると、x = 2, y = 3, Value = 118と表示されています。これは、一番左上のピクセル(0,0)から数えて右に2番目、下に3つ目のピクセル(カーソルの示す場所)の値が118であることを表しています。

続きを読む

ImageJ Fiji + Python で画像解析プログラムを書こう(前編)

目次

  • 目次
  • ImageJ と Python
  • ImageJ で動かす Python の特徴(この項目は意味が分からなければ読み飛ばしてもかまいません)
  • ImageJ で Python を動かそう

ImageJ と Python

ImageJ Fiji には画像解析のためのプラグインのほかに、スクリプトを書くためのエディターと実行するための機能が付属しています。ImageJ のスクリプトは幾つかのプログラミング言語や元々の ImageJ のマクロを用いて記述でき、その中に Python (厳密に言うと Java 上で実装された Python なので Jython になります)が含まれています。ImageJ 上での Python のエディターと実行のための機能は元々の ImageJ は付属していないため、Python を ImageJ で動かすためには Fiji をインストールする必要があります。Fiji のインストールはこちら。 satoshithermophilus.hatenablog.com

例えば、別の記事で書いた米粒のカウントを、自動で行うプログラムをこんな感じに書くことができます。米粒画像がたくさんあっても一瞬で解析を完了できます。

satoshithermophilus.hatenablog.com

Python は初心者向けの言語で、行いたい処理を短い行数で書くことができ、読みやすいコードが書けるのが特徴です。プログラミングをしたことのない人でもとっつきやすい言語です。Python でプログラムが書けるようになると、画像処理の他にも様々な計算や統計処理、機械学習なども気軽に試すことができるようになります。一石二鳥です。

バイオ系だけど Python を始めよう - バイオ系だけどプログラミング始めました

続きを読む

ImageJ で米粒(細胞)を数えて解析しよう。

目次

  • 目次
  • 概要
  • 米粒の画像を開く
  • 閾値を決める
  • バックグラウンドの減算
  • 米粒のカウントと定量的解析
  •  謝辞

 

 

概要

ImageJ には色んな機能がありますが、一方で使い始めたばかりの時はコマンドの多さに圧倒されてしまいます。目的の解析をするためにいったいどのコマンドを選べばいいのかよくわからない状態になりがちです。

そこで、この投稿では「米粒の数を数える」「それぞれの米粒の大きさ・輝度・形の情報を定量的に解析する」という作業を通して ImageJ の機能を体験してもらおうと思います。

今回は例として米粒を解析しますが、米粒を細胞に置き換えればあなたの研究に応用できるかもしれません。

今回の解説は ImageJ Fiji で行うことを前提に書いています。Fiji について、Fiji のインストールについてはこちら。

ImageJ Fiji のインストールと Fiji - バイオ系だけどプログラミング始めました

 

続きを読む