簡単な画像処理
Eosを使った簡単な画像処理を行ってみましょう。
目次
画像処理
Eosのコマンドは全て、-hのオプションを予約語としてもっており、そのコマンドの簡単な使い方のヘルプが表示されるようになっています。
画像を観察するツール
2次元の画像を表示するためのコマンドが、Display2です。
例
$ Display2 -i filename
として実行することが出来ます。
画像の情報をみる
画像の情報をみるコマンドとしては、mrcInfoとmrcImageInfoの二つをよく使います。
mrcInfoは、画像のヘッダー、及び、フッター(トレイラ)の情報をみるためのものです。画像の大きさやフォーマットなどをみることができます。
例
$ mrcInfo -i filename
mrcImageInfoは、画像全体や周辺の情報を解析して、観察するためのものです。最大値、最小値、平均値、分散などの画像全体や周辺の統計値をみることができます。
例
$ mrcImageInfo -i filename -I
画像をみやすくする
画像を観察しやすくするためのツールです。
平滑化
透過型電子顕微鏡の(位相)コントラストは、低分解能側の強度が弱いために、よい条件で写真を撮影し、高分解の情報が残っていれば残っているだけ、一見すると画像が見えづらくなっています。そこで、CTF補正を行うか、あるいは、単純に、低周波成分を落としたり、高周波のノイズやシグナルを落とすことで、分子の情報などが観察しやすくなります。
空間分解能に応じて、ローパスフィルタをとるコマンドが、mrcImageLowPassFilterです。
$ mrcImageLowPassFilter -h
とすると簡単なヘルプがでて、ローパスフィルタのモードの意味が分かります。
例えば、Gauss関数に基づいたローパスフィルタの場合は次のようになります。
$ mrcImageLowPassFilter -i input -o output -m 4 -hvp 0.1
課題:与えられた画像に、2nmが半値になる指数関数に基づいたローパスフィルタをかけてみましょう。
非線形型のフィルタをそなえたものが、mrcImageSmoothingです。よく使うのは、メジアンフィルタです。メディアンフィルタは、ごま塩状のノイズを除去するのに向いています。カーネルの形は長方形(直方体)と円(球)を選択することができます。
例えば、半径が3pixelの円形の範囲の中の中央値(メジアン)をとるフィルタであれば
$ mrcImageSmoothing -i input -o output -r 3 -m 1 -M 1
となります。
課題:与えられた画像に、半径2pixelの円形の中央値(メジアン)フィルタをかけてみましょう。
ヒストグラム変換
画像のヒストグラムを変換して、コントラストを変え、画像を見やすくするためのツールです。
mrcImageHighlightingでは、arctan関数を用いたヒストグラム変換、ヒストグラム平滑化に対応しています。
$ mrcImageHighlighting -i input -o output -m 2 or $ mrcImageHighlighting -i input -o output -m 1 -b 0 -g 1
エッジ強調
元々、透過型電子顕微鏡の画像はエッジ強調がかかっています。更に、それを強調したいとき、画像間のフィッティングなどを行う際にエッジを強調した画像に対して実施したい場合に行います。
空間分解能に応じて、ハイパスフィルタをとるコマンドが、mrcImageHighPassFilterです。
画像の空間方向の変換
転置
画像を90度回転させます。数学的な意味での転置とは違うので注意が必要です。数学的な意味での転置は次の鏡像と組み合わせる必要があります。
$ mrcImageTranspose -i input -o output
鏡像
mrcImageMirroringは、画像のy軸に対する鏡像を求めます。これと上記の回転を組み合わせると鏡像を得ることができます。
$ mrcImageMirroring -i input -o output
回転・移動mrcImageRotation, mrcImageShift, mrcImageTrans
画像の移動と回転を表現します。この時、画像の補間がとても重要な役割を果たします。
画像の周辺の変換
窓関数
周辺のコントラストを次第に落とすためのコマンドが、mrcImageWindowingになります。これは、デジタル画像処理においては、実画像が繰り返していることに対応するため、右左、上下のコントラスト、値が大きく違うと問題を生じるために講じる前処理にあたります。
例えば、周辺の画像の90%より外部の領域のコントラストを落とし、かつ、その値を画像の平均値とする場合には、
$ mrcImageWindowing -i input -o output -m 16
となります。
パッド
画像の周辺をシグナルのないウィンドウで覆います。デジタル画像処理の世界では、画像は繰り返していることになりますので、周辺の画像は反対側の周辺に影響を与えることになります。そこで、可能な限り周辺はシグナルのないウィンドウで覆います。できれば、原図の3倍以上となるようにした方がよいと云われています。
これを実行するコマンドは、mrcImagePadです。
例えば、256x256の大きさになるようにして、周辺の値の平均値で埋める場合には、
$ mrcImagePad -i input -o output -H 256 -W 256 -m 3
と実行すれば良いことになります。
二値化
画像の変形
スプライン曲線に沿った変換
mrcImageUnbentROI らせん対称性を用いた構造解析などに用いられます。スプライン曲線を設定し、その曲線をy軸、それに垂直な向きをx軸に水平な方向として補間します。若干曲がったらせんなどを修正することに用いています。Display2からそのスプライン曲線を設定することができます。
傾斜画像の予測
mrcImageEstimateTiltImage 0度傾斜の画像から傾斜画像の予測、もしくは、傾斜画像から0度傾斜画像の予測をします。もちろん、本当は立体画像ですので、予測することは困難です。平面画像に近い場合には有効に働きます。
画像処理(複数枚)
複数枚の画像を取り扱ったコマンドもあります。