Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 构建时空滤波器_Image_Filter_Processing_Fft_Convolution - Fatal编程技术网

Image 构建时空滤波器

Image 构建时空滤波器,image,filter,processing,fft,convolution,Image,Filter,Processing,Fft,Convolution,我想为我的图像实现一个时空过滤器,这是一组行走循环的轮廓。因此,我将所有图像收集到一个数组中,并将3D数组与我下面提到的时空内核进行卷积。 但是我的结果不正确。这是我的密码,请告诉我我的错误是什么 import cv2,numpy as np import matplotlib.pyplot as plt import glob from PIL import Image from scipy import ndimage def gkern(l,sig): """\ cr

我想为我的图像实现一个时空过滤器,这是一组行走循环的轮廓。因此,我将所有图像收集到一个数组中,并将3D数组与我下面提到的时空内核进行卷积。

但是我的结果不正确。这是我的密码,请告诉我我的错误是什么

import cv2,numpy as np
import matplotlib.pyplot as plt
import glob
from PIL import Image
from scipy import ndimage


def gkern(l,sig):
    """\
    creates gaussian kernel with side length l and a sigma of sig
    """

    ax = np.linspace(-(l - 1) / 2., (l - 1) / 2., l)
    xx, yy = np.meshgrid(ax, ax)

    kernel = np.exp(-0.5 * (np.square(xx) +  np.square(yy)) / np.square(sig))

    return kernel / np.sum(kernel)

t = np.linspace(0,20,23)

h1 = np.array(gkern(5,5))[None,:,:]
h2= np.array(np.sinc(t-2))[:,None,None]

img_array=[]


for filename in glob.glob('t/*.bmp'):
    img = np.array(Image.open(filename).convert('I;16'))
    img_array.append(img)

 v = np.array(img_array)

def fft(array):
  fft = np.fft.ifftshift(np.fft.fftn(np.fft.fftshift(array)))
  return fft

def ifft(array):
  ifft = np.fft.fftshift(np.fft.ifftn(np.fft.ifftshift(array)))
  return ifft

def conv_3D(array, kernel):
  conv = np.abs(ifft(fft(array)*fft(kernel)))
  return conv

st_kernel = conv_3D(h1, h2)
f_kernel = ndimage.convolve(v,st_kernel)

plt.figure(0)
plt.imshow(f[0,:,:],cmap='gray')