Я пытаюсь реализовать размытие по Гауссу в c ++, и я столкнулся с проблемой, которая заключается в том, что 2-мерное изображение не размыто при запуске.Весь процесс состоит в том, что он загружает полностью цветное изображение и меняет его на оттенки серого, но это также должно размыть его.Я также попробовал это в 1d изображении, и размытие сработало.Я использую шаблон доступа по трафарету, чтобы размыть данные.Любое руководство будет полезно.
Код шаблона размытия
//use the Stencil access pattern to blur the data (1D edge detector)
tbb::parallel_for(blocked_range<int>(1, n - 1), [&](const blocked_range<int>& range)
{
for (int i = range.begin(); i != range.end(); i++)
floatOutput[i] = floatInput[i - 1] * -2 + floatInput[i] * 0 + floatInput[i + 1] * 2;
});
Код сохранения
std::cout << "Saving image...\n";
outputImage.convertToType(FREE_IMAGE_TYPE::FIT_BITMAP);
outputImage.convertTo24Bits();
outputImage.save("blurred.png");
std::cout << "...done\n\n";