ImageSPM1.63

走査プローブ顕微鏡像解析ソフト

はじめに

1988年にNanoScope1という日本で初めて売り出された本格的なアナログ走査プローブ顕微鏡(当時は走査トンネル顕微鏡機能のみで像はメモリーオシロの写真をとることにより取得)を手に入れることができ、AD,DAコンバータと画像ボードを購入し機械語とBasicプログラム言語で本格的なデジタル走査プローブ顕微鏡システムを作りました。その後数年してNanoScope2という非常にすばらしいデジタル走査プローブ顕微鏡が売り出され、少しでも画像処理を含めた画像表示のレベルをNanoscope2に近づけようと作り始めたのがImageSPMです。機能的には全然劣りますが独自のアルゴリズムの探針補正と自動マスクノイズ除去機能は市販のソフトにないと思います。

概要

本プログラムはNIHImage1.63のソースコードをもとに走査プローブ顕微鏡の画像解析に特化したプログラムを追加したもので、英語版のImageSPM1.63Eと約90%日本語化したImageSPM1.63Jがあります。このプログラムはMac専用です。NIHImage1.61のソースコードをもとに作成したImageSPM1.61を作者は長年一般には未公開のまま使用していましたが、OS10になり大きな不具合がでるようになったので上述のソースコードで作り直し、気分一新して一般公開に踏み切りました。コンパイラとしてCode Warrior Pro3を用いています。なお作者は本プログラム使用中に起こる不具合については一切責任をおいませんのでご了承ください。追加した機能はカラーテーブルでのゴールドの追加、メニューSPMにおける機能です。目玉機能は特許登録されている探針の影響でできる虚像の大部分を取り除き実像に近い状態に画像を再構築するものです。またこのほかに他にない優れた機能として作者が常用している特定部分に自動的にマスクをかけノイズを除去するものが含まれています。

1.走査プローブ顕微鏡画像解析用メニューの使い方

1.1.ファイルの開き方

1.2.データの3D表示

New 1.2.1. 3D表示追加機能

New 1.2.2. 3D表示機能変更

1.3.回帰

1.4.探針形状の影響補正

1.5.傾斜除去

1.5.1.傾斜除去追加機能

1.5.2.傾斜除去追加機能-2

1.6.きず除去

1.7.その他のメニュー

New 1.7.1.二画像間の傾き補正追加機能

2.探針形状の推定方法

3.ImageSPMを用いた画像解析

3.1.カラー写真の色むら除去

3.2.ピットや粒子の体積

3.3.レーザ顕微鏡像合成

4.ダウンロード

1.1.ファイルの開き方

最初に走査プローブ顕微鏡のデータ記録方式はメーカーによって異なるのでどのようにして開くかを示します。データの記録方式は最初にデータ取得情報を記録しているヘッダがありその後生データが続くのが一般でヘッダの大きさはPhotoshopなどのプログラムで知ることができます。ちなみに作者がよく用いているセイコー電子のSP3800ではヘッダの大きさは2944でNanoScope3では8192です。まずメニューのファイルから指定形式で開くを選択すると図1のようなダイアログがでます。そこで右下の編集を選択すると図2のようなダイアログがでますので、高さにXY方向のデータ数オフセットにヘッダの大きさを記入し(他は記入する必要なし)、図1で16 bit unsigned(セイコーSP3800)か16 bit signed(NanoScope3)、バイトの配置替えをチェックして開きます。なお多くのデータを一気に開きたいときはすべてを開くもチェックしておきます。またレーザ顕微鏡などはテキストデータでセーブできますのでExcelなどでデータ部分のみ残して再セーブし指定形式で開くを選択しテキストを選択して開くと画像化されます。この時インデックスファクターで画像の濃度と実際の計測の高さの比率がわかります。

図1

図2

1.2.データの3D表示

最初の2つのサブメニュー1.3D固定 2.3D回転はデータを3D表示させるものです。この部分の特徴は画像内の任意の四角形部位の3D表示ができることです。小さな部位でも拡大して表示ができます。ここではK社のレーザ顕微鏡像をテキストファイル形式に保存したものを3D右回転等倍を用いて3D表示させる場合を説明します。まずファイルメニューから指定形式で開くを選択すると、図1に示してあるダイアログがでますのでテキストを選択しサンプルの3d1.txtを開いてください。図3のような画像ができます。情報ダイアログ(図4)をみると最大値、最小値や画像の大きさが書かれています。これから高低差がわかります。ここでは22820nmです。編集メニューから反転を選びます。測定面が傾いているのでSPMのサブメニューから傾斜除去を選択しその中の面近似補正を選択します。濃度は30を代入します。すると傾斜がとれた像ができているのがわかると思います。四角形の選択ツールで画像の一部を選択した後(図5)、サブメニューから3D右回転等倍を選択します。

図3

図4

図5

図6

図7

プログラムの進行に従って図6では2、図7では2、図8では256、図9では22.82、図10では1、図11では1、図12では1を代入してください。図13で示される画像が作成されることが判ります。図12の険しいと平らの違いですがプログラムにおける表示手法が異なっていますので好みのほうを使用してください。

図8

図9

図10

図11

図12

図13

1.2.1. 3D表示追加機能-18/8/2005

ImageSPM1.63cJでは形状像や電位分布像の任意の四角部分に任意の画像を貼付ける機能を追加する予定です。図51では走査プローブ顕微鏡の形状像に光学顕微鏡像を貼付けたもの、図52はカラーレーザ顕微鏡の合成像にカラー情報像を貼付けたものです。光学顕微鏡像がきれいだとインパクトのある3D画像ができます。使い方ですが、まず高低が像を開きます。四角ツールで画像の一部もしくは全体を選択しサブメニューのSPM3DRGBを選択します。すると図53で示されるダイアログがでますので貼付ける画像が8ビットインデックスカラーなら1、8ビットグレースケールなら2、24ビットRGBやCMYKなら3を代入します。1と2の場合はダイアログの指示に従うと3D画像ができます。24ビットRGB画像の場合は8ビットのR、G、B各画像を準備することが必要です。Photoshopなどのレイヤー分離機能を持ったソフトを使うこともできますがここではフリーソフトのImageJ(NIHImageの作者が作ったものです。)を用いた方法を紹介します。まず貼付けるRGB画像を開きます。メニューのImageのサブメニューのColorからRGB Splitを選択します。すると8ビットのグレースケールのR、G、B画像が形成されますので3画像保存します。高低画像を開き四角ツールで画像を選択した後図53で示されるダイアログで3を代入しまずR画像を開きダイアログの指示に従って3D画像を完成させSTMRと名付けて保存します。次にG画像、B画像を用いて3D画像を完成させSTMG、STMBと名付けて保存します。再びImageJで3画像を開き、メニューのImageのサブメニューのColorからRGB Mergeを選択すると24ビットのRGB画像が貼付いた3D画像が完成します。Photoshopを用いればCMYK画像の分離ができますのでCMYK画像を貼付けることが可能です。

図51

図52

図53

図54

1.2.2. 3D表示機能変更-18/8/2005

ImageSPM1.63cJでは4つあった3Dサブメニューを3D固定と3D回転の2つにしました。3D回転では仰角を0から90度まで自由に設定でき、また水平方向は0から45度まで自由に回転させることが可能です。図54は仰角45度、水平方向に30度回転させた3D画像です。

1.3.回帰

これはグレーティングなどの標準試料を用いて探針形状をパワー関数で近似するために導入した機能でスペース区切りのテキストを読み込むと図14で示されるダイアログがでてきて最小二乗法による種々の曲線近似が可能です。近似した関数の定数、標準偏差、決定係数が図15のように示され簡単に求められます。サンプルを入れておきますので試してください。

図14

図15

1.4.探針形状の影響補正

本プログラムの目玉です。約10年前本庁出向の時作ったものです。今回の手直しで1%刻みで進行状況が判るようにしました。またコマンド+ピリオドでループから抜けることが可能です。基本原理ですが、走査プローブで画像を取得する場合、試料形状の凹凸が大きいと探針の先端でなく側面が試料に接することになります。例えば図16のようなステップを走査するとその時得られる形状は太い実線で表されるものとなります。画像再構築の原理ですが、仮想の探針を画像上に配置します。すると図16の斜線で示される部分が重なります。この重なった部分を取り除いていくことにより現実に近い像が再構築されるわけです。現在考えられる最高の補正技術です。なぜこれ以上の補正ができないかという理由を簡単に説明するために重なりあった部分を取り除いた形状を考えてみます。この形状を走査したときにできる形状はステップを走査した時と同じ太い実線で表されるものとなります。すなわちステップを走査したときと同じ形状ができることは補正の限界を示しているわけです。ではこれ以上の画像を取得するためにはどうすればよいかということですが、あくまで案ですが左から右に走査しているとすると高さが増加すると判断された場合は探針を反時計方向に数度傾け、逆に高さが減少する場合は時計方向に数度傾ける機構を取り入れればよいと思います。

図16

図17

話は戻りますがここでは2種類の画像補正の手法を用意しています。一つは関数で探針形状を近似するもの、関数は本プログラムではパワー関数を採用しています。もう一つは関数近似が難しい探針を考えて探針画像で補正する手法も用意しました。図17で示されているグレーティングのサンプル画像は10年前に取ったものですが、このときの探針の形状はパワー定数2.11、形状定数0.0053でした。また最近行った新品の探針ではパワー定数1.71、形状定数0.0498でした。それらの数値を用いて画像を再構築するとほぼ実際の形状に近づくことがやってみると判ると思います。その手順を詳しく説明します。まずサンプル画像GPT01-1Tを開きます。逆画像構築する部分を選択し(図17では全面選択)、その後メニューからSPM逆画像関数を選択します。その後図18に示されるように走査範囲、図19のパワー定数、図20の画像の高さ幅、図21の形状定数を記入すると逆画像構築が始まります。図22で示していますように左下の情報ダイアログに進行が表示されますのであまり遅い場合はコマンド+ピリオドでプログラムを停止させてください。逆画像構築が終わると図23のような画像が形成されていることが判ると思います。

 

図18

図19

図20

図21

図22

図23

今度は逆にSPMシミュレーション関数を行ってみましょう。手順は全く同じで図17に近い画像が構築されることが判ると思います。続いて探針画像を用いたシミュレーションおよび逆画像構築ですが、ナノチューブ探針やナノインデンテーションのとき用いられる三角錐の探針ではどのように画像が影響されるのか知りたくて作ったプログラムです。SEMで形状が分かっていれば画像を作って用いることもできます。サンプル画像の見方ですが例えば三角錐の探針では先端が三角錐でその他の部分は三角柱となります。では実際の使い方を示します。これはダブルチップ効果といわれる探針の先端が割れた時の画像のシミュレーションです。まずSTMという画像を開きます。すべてを選択した後SPMのサブメニューからSPMシミュレーション画像を選択します。すると最初に図18と同じダイアログが出ますので実際の画像の大きさの2000を入力してください。続いて図20と同じものが出ますので18を入力してください。すると探針画像を選択してくださいというアラートがでますのでokをクリックした後ここではsprobe3を開いてください。続いて図18と同じダイアログが出ますのでここでは1000と入力します(別に500でもいいですが)。その後図20のダイアログがでますので20と入力します。これで画像シミュレーションが開始されます。終わると図24の画像が形成されます(注意:周辺部で探針の幅の半分ほど画像処理できない部分が存在します)。図25は実際にダブルチップと思われる探針でとった画像で特徴として形状に類似のパターンが現われることです。このような像が出現した場合は探針を交換して画像をとることが重要です。

図24

図25

続いて逆画像構築を同じ探針画像を用いて行ってみましょう。手順はシミュレーションの場合と同じです。図26のような像が形成されると思います。こんな探針でもかなり原画像に近づくことが判ると思います。いろいろ試してみれば面白いと思います。

図26

図27

1.5.傾斜除去

本プログラムの第2の目玉です。グラファイトのような非常に平坦な面に存在する微小液滴の画像をとるような場合、温度ドリフトなどにより存在しない高低差がノイズとして現われます。このノイズをとるために考えたプログラムです。その使い方を説明します。まずサンプル画像96D04100.INHを開きます。すべてを選択して(注意:図27のように特定部分だけ選択することも可能で複数選択する場合はコントロールを押しながら選択してください。この場合選択された領域を考慮したノイズ除去が実行されます。注意:問題が起こるかも知れないので1ケ所のみ選択してください。また面補正は部分選択に対応していません。)メニューSPMのサブメニューの傾斜除去を選択してください。すると図28のようなダイアログがでます。最初の4つはフラットの機能を強化したようなもので最初の2つを作者は多用しています。ここでは2番目の垂直直線近似補正を選択します。すると図29のダイアログが示されますので、ここでは30を入力すると図30のようにノイズがとれた画像が作成されます。濃度処理範囲の数値が小さいほど細かいノイズがとれますが、大きなうねりがある場合は大きな数値を代入する必要があります。いろいろ試して最も適した条件を見つけてください。

図28

図29

図30

1.5.1.傾斜除去追加機能その1-27/6/2005

ImageSPM1.63aJでは大幅に傾斜除去機能が強化されます。まず図28で示されていますダイアログに面曲面近似補正が追加されます。また図43で示されますようにマスク濃度領域の選択が可能となります。1.無ではマスク機能は働きません。2.上下では上(高い方向)、下(低い方向)とも別々にマスクレベルを設定することができます。3.上では高い部分のみ、4.下では低い部分のみマスクが施されます。また図44で示されていますようにレベル補正が可能となりました。正の値を入れると画像全体が暗く(低く)なり負の値を入れると明るく(高く)なります。面近似補正については四角選択ツールで選択した特定部分の情報のみで傾き補正が可能となりました。この機能は高さのスケールを大幅に変化させるので自動的に高さのスケールを256階調に合わせる機能を追加しました(図46)。自動スケール機能が働いている場合情報ダイアログに1017%スケール倍率というように表示されますので、3D画像を表示させる時はこの場合10.17倍の高さを代入する必要があります。この機能を使ってできる面白いことは図47のような画像を図48のように表現できることです。面曲面近似も特定部分で傾斜除去できますが、自動スケール機能は現在はつけていません。続いてサンプル画像96D04100.INHを用いてマスクについて述べたいと思います。画像を開いた後メニュー解析のサブメニューの測定を実行します。すると情報の平均:204.18となっているはずです。これがこの画像の平均濃度です。図45で示される濃度処理範囲上で30を代入すると204.18から30を引いた174.18より小さい濃度の領域がマスク(計算に考慮されない)されることになります。また濃度処理範囲下では30を足した234.18より大きい濃度の領域がマスクされます。ワンドツールで174より小さな濃度を赤くしたらちょうど水滴の部分がマスクされている(図37に近いイメージです)ことがわかると思います。このようにあらかじめ平均濃度を調べ、ワンドツールを用いることによりマスクにおける濃度処理範囲をどの程度に設定すればよいのかがわかります。面近似補正でも大きな傾きがある場合はまずマスク無で大きな傾きを除去した後細かいマスク設定を行い傾斜除去を行うと最適な傾斜除去ができます。

図43

図44

図45

図46

図47

図48

1.5.2.傾斜除去追加機能その2-13/7/2005

ImageSPM1.63bJでは傾斜除去メニューに自動スケール機能が付加され更に図49で示されるダイアログにマニュアルが追加されます。マニュアルを選択すると拡大率のダイアログがでますので拡大したい倍率を記入してください。

図49

図50

1.6.きず除去

これはラインエディットと同じ機能で周りのデータをノイズ部分に埋め込むことを行うだけの簡単なものです。まずノイズ部分を選択した後サブメニューからきず修正を選択すると実行されます。

1.7.その他のメニュー

ほとんど使ってませんので特に説明もしません。

1.7.1.二画像間の傾き補正追加機能

ImageSPM1.63cJでは二画像間の傾きを同じになるように補正する機能を追加します。目的はムービーを作る時に傾きや高さに対する色合いを統一するためです。この機能はある特定部分の反応に伴う形状変化の量を精度良く求めることに利用ができます。まず基本になる画像を開いた後メニューSPMのサブメニューから SPMsubを選択し基本画像の256レベルに対応する高さの値を代入した後補正画像を選択してくださいというダイアログが出ますので傾きを補正する画像を選んでください。後はダイアログの指示に従えば補正された画像ができます。

2.探針形状の推定方法

グレーティングや四角柱のようなサンプルを用いて推定します。図6のようなステップを走査した時探針を逆さまにした形状に等しい虚像が形成されます。断面図をテキストファイルでセーブしてパワー関数で近似することでできます。これは関数近似の場合です。画像近似の場合ですが図31の(a)のような四角柱のサンプルの画像をとると(b)のような画像が取得されます。4ケ所の端部から(c)のように探針の画像を得ることができます。

図31

3.ImageSPMを用いた画像解析

3.1.カラー写真の色むら除去

最近思い付いた画像処理手法です。特許になるかも知れないので手法公開は遅れるかも知れません。光学顕微鏡で撮影すると色むらができます。特にコントラストを上げると目立ちます。この色むらを取る手法です。図32のような色むらのあるカラー写真がみごとに図33のような色むらのないものに変身します。

図32

図33

図34

図35

図36

3.2.ピットや粒子の体積

基本的に傾斜が除去されれば可能です。図5で示されているような傾斜を除去したレーザ顕微鏡像についての具体的な手順を示します。まずメニューの解析からオプションを選択します。すると図34で示されるダイアログが出てきますので、ここでは面積と平均濃度がチェックされていることを確認しましょう。ツールから左の下から2番目のワンドツールを選択し図35のようにピット部分を選択します。その後メニューの解析から測定を選択します。続いてピット以外の部分が選択され赤くなるようにした後再びメニューの解析から測定を選択します。メニューの解析から結果の表示を選択し測定結果を見ますと図36のようにそれぞれの面積と平均濃度が示されます。平均濃度差は88.33となっています。濃度256が22.83μmに相当しますのでピットの平均深さは22.82*88.33/256=約7.88μmとなります。またここでは1ピクセルが1μmなので体積=面積*平均深さの関係から体積は45137立方μmというように求まります。次に図30のように小さな粒子が沢山ある場合の粒子の体積を求める手法について述べます。まず傾斜除去を行います。既に図30は傾斜除去されていますので、ピットの計測した時と同じようにワンドツールで測定したい粒子を選択します(図37)。その後メニューの解析から測定を選択します。測定結果は選択したすべての粒子の総面積と平均濃度を表しています。個々の粒子の欲しい場合はメニュー解析から粒子解析を選択すると図38のようなダイアログが出ますのでOKを選択します。結果の表示で個々の情報が見れますのでメニューのファイルから出力を選んで保存すると後でExcelなどで解析できます。光学写真の粒子の面積など求める場合はグレースケールでファイルを開き傾斜除去を行った後粒子を選択し解析すると容易にできます。

図37

図38

図39

図40

3.3.レーザ顕微鏡像合成

レーザ顕微鏡は3次元形状が容易に求められるので非常に便利ですが、形状精度を上げるには高い倍率で像をとることが必要です。しかし広い領域の形状を精度よくとるには画像を合成する必要がでてきます。深度のある焦点のあった画像は市販の画像処理ソフトのレイヤー機能を用いると容易に合成できます。図39はレイヤー機能を用いて合成した像で塗装の傷の画像です。問題は画像ごとに基準高さがずれているので(図40)合わせる必要があります。この場合も図40のように画像を張り合わせた後画像の一部分(ここでは下方)を選択した後メニューの傾斜除去水平オフセット補正で濃度30を代入すると図41のように基準高さの均一な画像が合成されます。後3D表示は3D表示メニューを用いることにより図42のような図ができます。このように傾斜除去機能はいろいろ応用が可能です。

図41

図42

4.ダウンロード