void DataProcessor::calculateFilterValues(std::vector<int> selectedOptions){ int numSelected = selectedOptions.size(); std::shared_ptr<Histogram> histogram; float mean, standardDeviation, filterMid, filterWidth; _filterValues = glm::vec2(0.0); if(numSelected <= 0) return; if(!_histograms.empty()){ for(int option : selectedOptions){ if(!_useHistogram){ mean = (1.0/_numValues[option])*_sum[option]; standardDeviation = _standardDeviation[option]; histogram = _histograms[option]; filterMid = histogram->highestBinValue(_useHistogram); filterWidth = mean+histogram->binWidth(); filterMid = normalizeWithStandardScore(filterMid, mean, standardDeviation, _normValues); filterWidth = fabs(0.5-normalizeWithStandardScore(filterWidth, mean, standardDeviation, _normValues)); }else{ Histogram hist = _histograms[option]->equalize(); filterMid = hist.highestBinValue(true); std::cout << filterMid << std::endl; filterWidth = 1.f/512.f; } _filterValues += glm::vec2(filterMid, filterWidth); } _filterValues /= numSelected; } }