Custom Color Table の作成
DigitalMicrographにてモノクロ画像に色を付ける場合、右クリックメニューのImage infoからColorタブを選択し、Color Tableから好みのグラデーションを選択する。プリセットのColor Tableは正直今一つであると思う。モノクロ印刷したときに輝度値で強度が判定できるようなColor Tableを採用しているのであろうか。カラー印刷やディスプレイ上での見栄えは今一つ。そこで自分好みのColor Tableを作る。
参考:
https://stackoverflow.com/questions/25922047/how-to-save-customized-color-tables-in-digitalmicrograph-gms-2-x
.dm3と.dm4の両方を「C:\Users_USERNAME_\AppData\Local\Gatan\ColorTables\」に保存しないと Color Table に反映されないとあるが、GMS 3.xではバグは修正された?ただし.dm4では認識せず、.dm3を保存すると認識した。GMS3でも.dm3で保存する必要があるようだ。ColorTablesフォルダはインストール直後には存在せず、自分で作成する必要がある。Prefsフォルダがある階層。
また、公開されているscriptではColorTableを編集するものがあるが、Color LookUp Table (CLUT)という名前がつけられているので検索時の参考まで。
http://www.dmscripting.com/applyclut.html
RGBカラーのColor Tableを生成するscript
デフォルトのColorTableにはRainbowがあり、光の波長の変化を表現するには最適。ただし、強度を表現する場合、色と強度の対応が直観的でない。強度が弱いときは青、強いときは赤としたいのだが、Rainbowでは逆である。そこで青から赤に連続的に変化するColor Tableを作成する。モノクロ印刷には向かない。
これはデフォルトで入っているRainbow Color Table
上図のようにColor Tableは16x16のサイズを持つ256ピクセルの画像データである。最初に256階調の1次元データ(clut)を作成し、それを16x16(clutimg)に整形する。
青-緑-赤のグラデーションのColor Table
//custom color lookup table
//blue-green-red
number x=256
image clut:=RGBImage("",4,x,1)
clut[0,0,1,x/4]=rgb(0,icol*4,x)
clut[0,x/4,1,x/2]=rgb(0,x,x-icol*4)
clut[0,x/2,1,x*(3/4)]=rgb(icol*4,x,0)
clut[0,x*(3/4),1,x]=rgb(x,x-icol*4,0)
number xx=16
image clutimg:=RGBImage("blue to red",4,xx,xx)
for(number i=0;i<xx;i++)
{
clutimg[i,0,i+1,xx]=clut[0,16*i,1,xx*i+xx]
}
clutimg.showimage()
生成した画像を.dm3形式でC:\Users_USERNAME_\AppData\Local\Gatan\ColorTables\に保存すると、新しいColor Tableとして様々な画像のカラー化に適用することができる。
黒-青-緑-赤-白のグラデーションのColor Table
青の前に黒を入れると、強度が弱いところを表現しやすい(気がする)。最大強度は赤でも良いが、紫-白とすることで、強度が飽和する感が出る(気がする)。これもモノクロ印刷には不向き。電子線マイクロアナライザーEPMAの元素マッピングデータにおいてよく使われるカラースケールと類似のものを目指した。
//custom color lookup table
//blue-green-red-purple
//lowest: black, highest, white
number x=256
number n=7
image clut:=RGBImage("",4,x,1)
clut[0,0,1,x/n]=rgb(0,0,icol*n)
clut[0,x/n,1,2*x/n]=rgb(0,icol*n,x)
clut[0,2*x/n,1,3*x/n]=rgb(0,x,x-icol*n)
clut[0,3*x/n,1,4*x/n]=rgb(icol*n,x,0)
clut[0,4*x/n,1,5*x/n]=rgb(x,x-icol*n,0)
clut[0,5*x/n,1,6*x/n]=rgb(x,0,icol*n)
clut[0,6*x/n,1,7*x/n]=rgb(x,icol*n,x)
number xx=16
image clutimg:=RGBImage("blue to purple",4,xx,xx)
for(number i=0;i<xx;i++)
{
clutimg[i,0,i+1,xx]=clut[0,16*i,1,xx*i+xx]
}
clutimg.showimage()
TEMの電子回折図形はこれらのColor Tableで疑似的に着色すると、弱い回折斑点が見やすくなることがある。