ImageAnalysisCPU: Optimize azimuthal integration calculations to increase performance
This commit is contained in:
@@ -22,7 +22,8 @@ ImageAnalysisCPU::ImageAnalysisCPU(const DiffractionExperiment &in_experiment,
|
||||
spotFinder(in_integration),
|
||||
indexer(in_indexer),
|
||||
saturation_limit(experiment.GetSaturationLimit()),
|
||||
mask(in_mask) {
|
||||
mask(in_mask),
|
||||
azint_bins(in_integration.GetBinNumber()) {
|
||||
|
||||
roi_map = experiment.ExportROIMap();
|
||||
roi_count = experiment.ROI().size();
|
||||
@@ -77,9 +78,9 @@ void ImageAnalysisCPU::Analyze(DataMessage &output,
|
||||
|
||||
std::vector<ROIMessage> roi(roi_count);
|
||||
|
||||
std::vector<float> azim_sum(integration.GetBinNumber(), 0.0f);
|
||||
std::vector<float> azim_sum2(integration.GetBinNumber(), 0.0f);
|
||||
std::vector<uint32_t> azim_count(integration.GetBinNumber(), 0);
|
||||
std::vector<float> azim_sum(azint_bins, 0.0f);
|
||||
//std::vector<float> azim_sum2(integration.GetBinNumber(), 0.0f);
|
||||
std::vector<uint32_t> azim_count(azint_bins, 0);
|
||||
|
||||
size_t err_pixels = 0;
|
||||
size_t masked_pixels = 0;
|
||||
@@ -130,11 +131,11 @@ void ImageAnalysisCPU::Analyze(DataMessage &output,
|
||||
}
|
||||
}
|
||||
}
|
||||
uint16_t bin = pixel_to_bin[i];
|
||||
if (bin < integration.GetBinNumber()) {
|
||||
const uint16_t bin = pixel_to_bin[i];
|
||||
if (bin < azint_bins) {
|
||||
float val = image[i] * corrections[i];
|
||||
azim_sum[bin] += val;
|
||||
azim_sum2[bin] += val * val;
|
||||
//azim_sum2[bin] += val * val;
|
||||
++azim_count[bin];
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user