Exemplo n.º 1
0
    def evaluate_grid_approx(self, x0, x1, y0, y1, cx, cy, minval):
        '''
        minval: small value at which to stop evaluating

        [x0,x1): (int) X values to evaluate
        [y0,y1): (int) Y values to evaluate
        (cx,cy): (float) pixel center of the MoG

        Returns: numpy array of shape (y1-y0, x1-x0)
        '''
        from mix import c_gauss_2d_approx2
        assert(self.D == 2)

        result = np.zeros((y1-y0, x1-x0))
        rtn = c_gauss_2d_approx2(x0, x1, y0, y1, cx, cy, minval,
                                 self.amp, self.mean,self.var, result)
        if rtn == -1:
            raise RuntimeError('c_gauss_2d_approx2 failed')
        return result
Exemplo n.º 2
0
        plt.colorbar()
        plt.title('Grid')
        ps.savefig()
        
        plt.clf()
        plt.imshow(np.log10(np.maximum(minval * 1e-3, result)),
                   interpolation='nearest', origin='lower')
        plt.colorbar()
        plt.title('Approx 1')
        ps.savefig()

        assert(np.all(np.abs(r2 - result) < minval))

        result2 = np.zeros((H, W))
        print 'args (approx2):', x0, x1, y0, y1, dx, dy, minval, amp, mean, var
        rtn = c_gauss_2d_approx2(x0, x1, y0, y1, dx, dy, minval, amp, mean, var, result2)
        if rtn == -1:
            raise RuntimeError('c_gauss_2d_approx2 failed')

        print 'Max difference 2:', np.max(np.abs(r2 - result2))
        
        plt.clf()
        plt.imshow(np.log10(np.maximum(minval * 1e-3, result2)),
                   interpolation='nearest', origin='lower')
        plt.colorbar()
        plt.title('Approx 2')
        ps.savefig()

        plt.clf()
        plt.imshow(result2 - r2,
                   interpolation='nearest', origin='lower')
Exemplo n.º 3
0
        plt.colorbar()
        plt.title('Grid')
        
        plt.subplot(1,2,2)
        plt.imshow(np.log10(np.maximum(minval * 1e-3, result)),
                   interpolation='nearest', origin='lower')
        plt.colorbar()
        plt.title('Approx 1')
        plt.suptitle('j = %i' % j)
        ps.savefig()

        assert(np.all(np.abs(r2 - result) < minval))

        result2 = np.zeros((H, W))
        print 'args (approx2):', x0, x1, y0, y1, dx, dy, minval, amp, mean, var
        rtn = c_gauss_2d_approx2(x0, x1, y0, y1, dx, dy, minval, amp, mean, var, result2)
        if rtn == -1:
            raise RuntimeError('c_gauss_2d_approx2 failed')
        print 'Max difference 2:', np.max(np.abs(r2 - result2))
        
        plt.clf()
        plt.subplot(1,2,1)
        plt.imshow(np.log10(np.maximum(minval * 1e-3, result2)),
                   interpolation='nearest', origin='lower')
        plt.colorbar()
        plt.title('Approx 2')

        plt.subplot(1,2,2)
        plt.imshow(result2 - r2,
                   interpolation='nearest', origin='lower')
        plt.colorbar()