examples/poc_sem_tem_same_particle.py は、20〜80 nmの球形・ファセット粒子14個を一つの真値台帳で持ち、同じ位置・径・材料から走査像と透過像を作ります。ISO 13322-1型の面積相当径、最大傾斜の縁、距離変換とwatersheds_markerによる接触粒子分離を同じ真値に照合します。
One truth ledger of fourteen 20–80 nm spherical and faceted particles drives both scanning and transmission images. Area-equivalent diameter, maximum-slope edges, distance-transform watershed splitting, stereo height and limited-angle reconstruction are compared against that shared truth.
52 nm粒子の実行値は、走査像のしきい値で+4.16 nm、透過像の正焦点で-0.18 nm、焦点外れ12000 nmで+9.82 nmです。前者はガウス縁の半値幅、後者はフレネル間隔sqrt(lambda defocus)で説明します。反射信号の材料比、±5°の視差高さ、±60°の限定角再構成も、それぞれ公表値・閉形式・完全角の第2再構成で採点します。
向く用途は、二つの画像から得た粒径が食い違ったときの原因分解、測定条件の記録、接触粒子を含む粒径分布の比較です。走査像の二次電子だけでは内部構造が分からず、透過像には薄い支持膜が必要です。厚い粒子では弱位相近似が崩れるため、最大粒子についてマルチスライスとの差も数値で残します。
import numpy as np
import semsim
import temsim
height_nm = np.zeros((32, 32))
scanning_image = semsim.sem_render(height_nm, pixel_nm=1.0)
power = temsim.tem_power_spectrum(scanning_image)
print(scanning_image.shape, power.shape)
sem_render → tem_power_spectrum
材料差まで要る走査像はsem_image、透過像の結像はtem_image_weak_phase、接触対はwatersheds_marker、限定角はradon_transformとfiltered_backprojectionを使います。
二次電子像は内部構造を示しません。透過像には薄い支持膜が必要で、厚い粒子では弱位相近似が崩れます。限定角再構成は欠落角方向へ伸びます。
画素寸法を既知寸法試料で校正し、走査像はビーム幅、透過像は電子波長と焦点外れを記録します。このPoCは既知のnm格子なので追加較正は0です。