Exemplo n.º 1
0
    return ws[np.argmin([mse(x, deconv_wiener(y, h, w)) for w in ws])]


if __name__ == "__main__":
    np.random.seed(0)
    # 2d
    from matplotlib.pyplot import imread

    s = 0.05
    x = imread("data/usaf.png")

    x *= 0
    x[200:400, 200:400] = 1.0

    mu = 10000.0
    rho = 10.0

    scale = 100

    x *= 1.0 * scale

    h = psf(x.shape, (6.0, 6.0))

    y = myconvolve(x, h) + s * np.amax(x) * np.random.uniform(0, 1, x.shape)

    # u = deconv_tv_al([y,y2],[h,h2])

    u = deconv_tv_al(y, h, mu, rho)

    u2 = deconv_wiener(y, h, rho / mu)
Exemplo n.º 2
0
        rnorm = rnorm_new

    return f
        
if __name__ == '__main__':
    from matplotlib.pyplot import imread
    from pydeconv.utils import myconvolve, psf
    
    im = imread("../tests2/data/usaf.png")


    np.random.seed(0)

    
    hx = (5.,5.)
    h = psf(im.shape,hx)
        
    g = myconvolve(im ,h)
    
    g += .01*np.amax(im)*np.random.normal(0,1.,im.shape)

    mu = 10000.
    rho = 2.

    
    def wien(y_f,alpha = .1):
        u_f = h_f.conjugate()*y_f
        u_f /= np.abs(h_f)**2  + alpha
        return np.abs(np.fft.ifftn(u_f))

    def _fun(u , mu):