У меня есть изображение 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.Что мне здесь не хватает?