def test_float(self): # test for uint8 im = np.zeros((2, 2), np.uint8) im = Image(im) nt.assert_array_almost_equal(im.float().image, np.zeros((2, 2), np.float32)) im = 128 * np.ones((2, 2), np.uint8) im = Image(im) nt.assert_array_almost_equal(im.float().image, (128.0 / 255.0 * np.ones((2, 2)))) im = 255 * np.ones((2, 2), np.uint8) im = Image(im) nt.assert_array_almost_equal(im.float().image, (np.ones((2, 2)))) # test for uint16 im = np.zeros((2, 2), np.uint16) im = Image(im) nt.assert_array_almost_equal(im.float().image, np.zeros((2, 2), np.float32)) im = 128 * np.ones((2, 2), np.uint16) im = Image(im) nt.assert_array_almost_equal(im.float().image, (128.0 / 65535.0 * np.ones((2, 2)))) im = 65535 * np.ones((2, 2), np.uint16) im = Image(im) nt.assert_array_almost_equal(im.float().image, (np.ones((2, 2)))) # test for sequence of images im = np.random.randint(low=1, high=255, size=(5, 8, 3, 4), dtype=np.uint8) im = Image(im) imf = im.float() nt.assert_array_almost_equal(imf.shape, im.shape) nt.assert_array_almost_equal(imf.image, im.image.astype(np.float32) / 255.0) im = np.random.randint(low=1, high=65535, size=(3, 10, 3, 7), dtype=np.uint16) im = Image(im) imf = im.float() nt.assert_array_almost_equal(imf.shape, im.shape) nt.assert_array_almost_equal(imf.image, im.image.astype(np.float32) / 65535.0)
def test_morph1(self): # test simple case im = Image(np.array([[1, 2], [3, 4]])) se = 1 nt.assert_array_almost_equal(im.morph(se, 'min').image, im.image) nt.assert_array_almost_equal(im.morph(se, 'max').image, im.image) nt.assert_array_almost_equal( im.morph(se, oper='min', opt='replicate').image, im.image) nt.assert_array_almost_equal( im.morph(se, oper='min', opt='none').image, im.image) # test different input formats nt.assert_array_almost_equal( im.int('uint8').morph(se, 'min').image, im.image) nt.assert_array_almost_equal( im.int('uint16').morph(se, 'min').image, im.image) nt.assert_array_almost_equal(im.float().morph(se, 'min').image * 255, im.image) im = np.array([[1, 0, 1], [0, 1, 0], [1, 1, 0]]) im = Image(im.astype(bool)) nt.assert_array_almost_equal(im.morph(se, 'min').image, im.image)
print(im) red = im.red() blue = im.blue() print(red) # im.disp(block=False) # red.disp() grey = im.mono() print(grey) # grey.disp() print(im.isint) im.stats() z = im.float()**2 print(z) z.stats() z.disp() z = im * 0.5 z.stats() # read from web # im = Image("http://petercorke.com/files/images/monalisa.png") # print("monalisa:", im) # im.disp() # im = Image("http://petercorke.com/files/images/flowers7.png") # print("flowers7:", im) # im.disp()