Ruyi-Zha / naf_cbct

MIT License
106 stars 20 forks source link

Render code question #13

Closed findme8 closed 8 months ago

findme8 commented 8 months ago

Hey,

I read your render code at https://github.com/Ruyi-Zha/naf_cbct/blob/main/src/render/render.py.

I want to know that why the dimension of 'raw' at line 27 is not a 3D CT volume? I check its dimension is (1024, 192, 1). Could we do render 2D projections from 3D CT volume directly by using your render.py code?

Also why do you choose the n_samples=192 https://github.com/Ruyi-Zha/naf_cbct/blob/main/config/chest_50.yaml, is it just a random number?

Thanks for your time!

Ruyi-Zha commented 8 months ago

Hi, thanks for your interest.

raw = run_network(pts, net, netchunk) returns the density (or attenuation coefficient) at the position pts. The dimension is (1024, 192, 1) because we query 192 points along 1024 sampled rays.

Technically we can render 2D projections from a 3D CT volume with acc, _ = raw2outputs(raw, z_vals, rays_d, raw_noise_std) in line 43, by querying points along all rays. However, I suggest you use the TIGRE toolbox since it is easier to use. You can check how to do that with generateData.py.

n_samples=192 is empirically set up such that it is larger than CT dimension (128).

findme8 commented 8 months ago

Thanks! I'll try to implement as you suggest.