Умножение в частотной области после ДПФ - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть изображение 100 x 100 и ядро ​​5x5, и я хочу применить это ядро ​​к этому изображению

1 - я добавляю границы (5-1) / 2 к изображению и беру DFT изображения

2 - Я создаю другую матрицу того же размера, что и изображение, и заполняю ее нулями.Затем я помещаю свое оригинальное ядро ​​в верхнюю левую часть этой новой матрицы. Теперь я назову его фильтром

3. Затем сделайте то же самое для фильтра

Теперь у меня есть воображаемое иреальные части изображения и фильтра.Я умножаю их следующим образом

    for i to 102
        for j to 102
        {
            newReal = realImage * realKernel - imaginaryImage * imaginaryKernel
            newImaginary = realImage * imaginaryKernel + imaginaryImage * realKernel
        }

    and do InverseFourierTransform(newReal, newImaginary)

4-, а затем получается почти черный результат, который, я думаю, из-за этой операции заполнения с 0s.

Если я не применяю aфильтр и просто взять dft и работает код inverseDftmy.Что мне здесь не хватает?

...