У меня есть довольно простой вопрос, но я все еще не уверен!Гистограмма сглаживания
На самом деле, я хочу только сгладить гистограмму, и я не уверен, какие из следующих методов верны. Я сделал бы это так:
vector<double> mask(3);
mask[0] = 0.25; mask[1] = 0.5; mask[2] = 0.25;
vector<double> tmpVect(histogram->size());
for (unsigned int i = 0; i < histogram->size(); i++)
tmpVect[i] = (*histogram)[i];
for (int bin = 1; bin < histogram->size()-1; bin++) {
double smoothedValue = 0;
for (int i = 0; i < mask.size(); i++) {
smoothedValue += tmpVect[bin-1+i]*mask[i];
}
(*histogram)[bin] = smoothedValue;
}
Или вы обычно делаете это как это ?:
vector<double> mask(3);
mask[0] = 0.25; mask[1] = 0.5; mask[2] = 0.25;
for (int bin = 1; bin < histogram->size()-1; bin++) {
double smoothedValue = 0;
for (int i = 0; i < mask.size(); i++) {
smoothedValue += (*histogram)[bin-1+i]*mask[i];
}
(*histogram)[bin] = smoothedValue;
}
Моего это проблемы качества: Является ли это доступным для копирования гистограммы в дополнительном векторе первый, так что, когда Я сглаживаю в бункере i
Я могу использовать исходное значение i-1
или просто сделать smoothedValue += (*histogram)[bin-1+i]*mask[i];
, так что я использую уже сглаженное значение i-1
вместо исходного.
С уважением & Благодарим за ответ.
Добро пожаловать в SO! В следующий раз, пожалуйста, отформатируйте свой код, отложив его четырьмя пробелами или выбрав его и нажав кнопку 101010. На этот раз я сделал это для вас. Вы можете использовать backticks (\ '\') для форматирования кода внутри абзацев текста. – Thomas