grind opscalar × scalar × scalar → tableimport fullseye as fs; fs.ledger.particle_image_synth(n: 'int' = 60, d_med: 'float' = 12.0, sigma_ln: 'float' = 0.35, shape=(256, 256), pitch: 'float' = 1.0, seed: 'int' = 0, gap: 'float' = 3.0, supersample: 'int' = 4) -> 'dict' (実装を直接呼ぶなら import grind; grind.particle_image_synth(n: 'int' = 60, d_med: 'float' = 12.0, sigma_ln: 'float' = 0.35, shape=(256, 256), pitch: 'float' = 1.0, seed: 'int' = 0, gap: 'float' = 3.0, supersample: 'int' = 4) -> 'dict'、台帳から引くなら opsdrive.get("particle_image_synth"))重ならない円板(粒子の投影)を撒いた被覆率の画像と真値(直径 [µm] の対数正規、pitch µm/px)。
円板どうしは gap px 以上離す(融合は別の問題で、poc_particle_sizing が扱う)。既定 3 px: 2 px だと両側の部分画素が
斜めに隣り合い、8 連結のラベルで 2 個が 1 個になった(12 枚中 4 枚、体積基準の D50 が最大 8.5 % ずれた)。縁は supersample で反エイリアス。
返り: image((H, W) 被覆率)、pitch、truth(diameters µm、centres px、touches_border)。
置けなかった粒子があれば n_placed < n(黙って詰めない)。
py -3.11 examples/poc_dose_uniformity_from_grinding.pypy -3.11 examples/poc_powder_grinding_ae.pytable を入力に取れる)course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same
grind)particle_size_read · particle_size_dx · particle_size_oversize · particle_size_synth · comminution_energy · comminution_law_fit · breakage_first_order_fit · replicate_compare
Provenance: grind.py — DRIVE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.