Skip to content

Commit 3d047ed

Browse files
committed
change particle data type to uint16 for compatibility with other examples, minor cleanup
1 parent da3f3a5 commit 3d047ed

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed

examples/Example_denoise.hpp

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -54,59 +54,66 @@ bool denoise_example(cmdLineOptionsDenoise& options){
5454

5555
timer.verbose_flag = true;
5656

57-
// APR datastructure
57+
// APR data structure
5858
APR apr;
59+
ParticleData<uint16_t>parts;
5960

61+
//read APR and particles from file
6062
timer.start_timer("read apr");
61-
//read file
6263
APRFile aprFile;
6364
aprFile.open(file_name,"READ");
6465
aprFile.read_apr(apr);
65-
66-
ParticleData<float>parts;
6766
aprFile.read_particles(apr,parts); //default read, will take the first particles added to the file
68-
6967
aprFile.close();
7068
timer.stop_timer();
7169

72-
APRStencils aprStencils;
73-
74-
auto it = apr.iterator();
75-
76-
aprStencils.dim = it.number_dimensions(); //get the dimension from the file.
77-
78-
PixelData<float> recon_pc;
79-
70+
// reconstruct noisy input image by piecewise constant interpolation
8071
timer.start_timer("pc interp");
81-
//perform piece-wise constant interpolation
72+
PixelData<uint16_t> recon_pc;
8273
APRReconstruction::interp_img(apr,recon_pc, parts);
8374
timer.stop_timer();
8475

76+
// save reconstructed input as TIFF
8577
std::string image_file_name = options.directory + apr.name + "_org.tif";
8678
TiffUtils::saveMeshAsTiffUint16(image_file_name, recon_pc,false);
8779

88-
//load in an APR
89-
APRDenoise aprDenoise;
80+
/// Start of APR denoising
81+
timer.start_timer("train APR denoise");
9082

83+
// init denoising stencils
84+
APRStencils aprStencils;
85+
auto it = apr.iterator();
86+
aprStencils.dim = it.number_dimensions(); //get the dimension from the file.
87+
88+
// learn stencil weights
89+
APRDenoise aprDenoise;
9190
aprDenoise.train_denoise(apr,parts,aprStencils);
91+
timer.stop_timer();
92+
9293

93-
ParticleData<float> parts_denoised;
94+
// apply denoising stencils
95+
timer.start_timer("apply APR denoise");
96+
ParticleData<uint16> parts_denoised;
9497
aprDenoise.apply_denoise(apr,parts,parts_denoised,aprStencils);
98+
timer.stop_timer();
9599

100+
// reconstruct image from denoised particles by piecewise constant interpolation
96101
timer.start_timer("pc interp");
97-
//perform piece-wise constant interpolation
98102
APRReconstruction::interp_img(apr,recon_pc, parts_denoised);
99103
timer.stop_timer();
100104

105+
// save denosied image as TIFF
101106
image_file_name = options.directory + apr.name + "_denoised.tif";
102107
TiffUtils::saveMeshAsTiff(image_file_name, recon_pc,false);
103108

109+
// write APR and denoised particles to file
110+
timer.start_timer("write denoised APR to file");
104111
file_name = options.directory + options.output;
105-
106112
aprFile.open(file_name,"WRITE");
107113
aprFile.write_apr(apr);
108114
aprFile.write_particles("particles",parts_denoised);
109115
aprFile.close();
116+
timer.stop_timer();
110117

111118
return true;
112119
}

0 commit comments

Comments
 (0)