示例#1
0
def genrate_sinogam_ref(image, angles):
    size = image.shape[0]
    sinogram = numpy.zeros((size, len(angles)), dtype="float32")
    for ia, angle in enumerate(angles):
        tmp_proj = project(rotate_square(image, angle))
        sinogram[:, ia] = tmp_proj
    return sinogram.astype("float32"), angles.astype("float32")
示例#2
0
def genrate_sinogam(image, angles):
    size = image.shape[0]
    sinogram = np.zeros((size, len(angles)), dtype='float32')
    for ia, angle in enumerate(angles):
        tmp_proj = project(rotate_square(image, angle))
        sinogram[:, ia] = tmp_proj
    return sinogram.astype('float32'), angles.astype('float32')
def test_rotate_square():
    N=501
    x=modified_shepp_logan((N,N,3))[:,:,1]
    x=numpy.array(x)
    for angle in [0.0, 10.0,45.0,90.0,150.0,180.0,210.0]:
        r_rot=ref.rotate_square(x,angle)
        i_rot=ispmd.rotate_square(x,angle)
        mssim=MSSIM(r_rot,i_rot,16)
        mssim=scipy.ndimage.median_filter(mssim,3)
        print angle,mssim.min()
        if not (numpy.min(mssim)>0.9).all():
            pylab.figure()
            pylab.subplot(121)
            pylab.imshow(mssim)
            pylab.colorbar()
            pylab.subplot(122)
            pylab.imshow(r_rot-i_rot)
            pylab.colorbar()
            pylab.show()
            assert False