/PDXIDA-STL2VOX

code for ICONE 2022- 92402:A Physics-Driven X-Ray Image Data Augmentation For Automated Threat Detection In Nuclear Facility Entrancement

Primary LanguageMATLAB

demo.m 将STL转换成二值体数据 uint格式(节省空间,可以读取mat后再赋值衰减系数)

----------------------------------- 参数介绍 -------------------------------------------
1、pixels为像素数,xyz三个方向长度和像素数相同,例码中为512*512*512
   ----  单位尺寸需要根据实际情况估算,这里简单控制像素数以防内存溢出
   ----  单位尺寸可以参考程序中的dstep,但dstep是STL建模时的设置,有时候不是1:1实物
   ----  比较精细的模型考虑取为1024来转换
2、B为膨胀边界点时的领域矩阵
   ----  参考matlab的imdilate函数的原理介绍
   ----  使用该函数以保证边界连续,否则会填充为错误结果
   ----  膨胀效果不佳时考虑增大B为B = [1,1,1;1,1,1;1,1,1];甚至使用5*5,7*7的领域
3、path_in为STl文件的路径
4、path_out为输出mat文件的路径,默认保存在data_mat中

----------------------------------- 使用细节 -------------------------------------------
1、注意imdilate if necessary一节:img_surf = imdilate(img_surf,B);
  ----  一般情况下默认进行膨胀是合适的
   ----  如果发现网格填充过度(应为空白的区域被填充上数值),请注释掉这一节
   ----  如果发现网格填充不连续(应为数值的区域没有填充上),请取消注释,甚至考虑修改参数B
2、volumeViewer(matlab)或amira可以帮助您查看转化效果是否成功,以便调整pixel和imdilate
3、本代码的转换并不是100%成功的,但考虑到建模是灵活方便的,特殊情况请您尝试修改STL或下载其他模型
4、推荐一个建模网站: http://www.3dwhere.com/index.html