DM入門 Home>

VIII. 座標と値

Ver. 1: 2024.4.21
木本浩司

1. DigitalMicrograph(DM)の座標と値

座標と値

DMではicolやirow、あるいはiradiusを使って座標に依存する値を有するデータを作ることができます。例えば下記script-1で、中心からの距離に反比例する強度を有する画像を作成・表示できます。

// Script-1 image img:= RealImage("1/radius", 4, 8, 8) img= 1/(iradius+1) ShowImage(img)

実際のピークは中心からわずかに右下にずれているように見えます。値が最大となる座標(iradiusの原点)は、上記の場合には(4,4)です。DMでは左上が各画素の座標になっているので、0.5 pixiel分の右下にずれたように見えます。画素を少なくし、例えば上記の8を値の小さな奇数(例えば5)に変えると、中心が間違っているのではないかとさえ見えます。

原点

TEM/STEM像では画像データのoriginはあまり意識しませんが、回折図形では透過スポットの位置であるべきです(詳しくは電子回折のページを参照下さい)。一般にDMで画像を定義すると、defaultで画像の左上座標(0,0)が原点(oriX,oriY)になっています。2D画像の原点は、imageSetDimensionCalibration()を使わなくても、昔から在るGetOrigin()で確認できます。

// Script-2 image img:= GetFrontImage() number oriX, oriY // origin X and Y GetOrigin(img, oriX, oriY) Result("\nOrigin(x,y): " +oriX + ", " +oriY)

ImageInfo(Ctrl+D)でcalibrationを見ても、なぜか有効数字が2桁で(例えば256が2.6e2)表示され、256なのか256.5なのか判らないという困った状態です(GMS3.4にて)。ただし値は有効数字2桁ではなく、正しく設定されています。

2. 原点の自動設定:ソフトウエア開発者の配慮?

回折図形を取得した場合、おそらく原点は画像の左上になっています。しかし、そこにdiffraction用のROIツールを配置すると、DMでは自動的に画像の中心を原点にしてくれます。例えばドーナッツ状などのROIは、中心に配置されます。実際のoriginの値を上記のscript-2で小数点まで確認することをお勧めします。512×512画像であればDiff用ROIを置いた瞬間に256に自動的に設定されます。

TEM/STEM画像をフーリエ変換してマスクを設定することはしばしば行われます。例えば、512×512の画像をフーリエ変換するとDMでは512×512の複素数画像が表示されます。原点はその中心ですが、script-2で確認するとoriginは256ではなく256.5になっています。

中心と最大値の座標を下記のscriptで確認してみると、フーリエ変換画像の原点は0.5ずらして設定されていることがわかります。

// Script-3 image img :=getfrontimage() number oriX, oriY, sizeX, sizeY, max, maxX, maxY GetOrigin(img, oriX, oriY) GetSize(img, sizeX, sizeY) Max = Max(real(img), maxX, maxY) Result("\n" + Getname(img)) Result("\n Center :" + sizeX/2 + ", " + sizeY/2) Result("\n Origin :" + oriX + ", " + oriY) Result("\n Maximum:" + Max +" at "+maxX + ", " + maxY)

ROIは見た目の画素とROIの関係に基づき処理されることや、ROIがoriginの値をもとに配置することから、x,yそれぞれ0.5増やしているのは、ソフトウエア開発者の配慮と推察します。おかげさまで、私もこれまで不都合を感じたことは在りませんでした。

3. 画像処理(回転平均)の座標の原点

回折図形の回転平均を計算する時など、画像処理をする際にはどこが原点かが重要です。既述のscriptで回転平均をとる際には、次のコマンドを使用しました。

warp(img, icol*sin(irow*k) + OriX, icol*cos(irow*k) + OriY )

ここで使っている原点(oriX, oriY)は、DMのルールにしたがい、中心とする画素の左上の座標で指定します。上記script-1で作成した半pixel右下に中心がずれたような画像も、原点を(4,4)としてその画素を中心に正しく回転平均を計算します。原点を(4.5,4.5)とするべきではありません。ここで次の問題が発生します。

STEM/TEM像のフーリエ変換画像に対し実数に変換したのち回転変換をとりたい場合があります。フーリエ変換した場合の中心は、画像の中心の座標の画素ですが、上記で述べたソフトウエア開発者の配慮により、原点が右下に0.5pixelずれています。その原点周りで回転平均をとると所望の結果が得られません。originを再設定するか、あるいは最初から画像サイズの半分の位置に原点があると考えてデータ処理を進めた方が、トラブルが少ないと思います。データの原点は中心座標が左上になる画素と決めておくのが良いと思います。