Размытие по Гауссу не работает для 2D-изображения? - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь реализовать размытие по Гауссу в 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";
...