def test3(self): import sys data1 = np.array([[ 0, 0, 0, 0, 0, 0, 0], [ 0, 0, 0, 0, 0, 0, 0], [ 0, 1, 1, 1, 1, 1, 0], [ 0, 0, 0, 0, 0, 0, 0]]) bl1 = np.zeros(data1.shape,np.intc) np1 = connectedpixels.connectedpixels(data1,bl1,0.1) data2 = np.array([[ 0, 0, 0, 0, 0, 0, 0], [ 0, 2, 0, 0, 0, 2, 0], [ 0, 2, 0, 0, 0, 2, 0], [ 0, 2, 0, 0, 0, 2, 0]]) bl2 = np.zeros(data2.shape,np.intc) np2 = connectedpixels.connectedpixels(data2,bl2,0.1) r1 = connectedpixels.blobproperties(data1, bl1, np1) r2 = connectedpixels.blobproperties(data2, bl2, np2) connectedpixels.bloboverlaps(bl1,np1,r1, bl2,np2,r2, verbose=0) # check which peaks are zeroed self.assertAlmostEqual(np.sum(r1[0]),0.,6) # Results pile up all in r2[0] self.assertAlmostEqual(np.sum(r2[1]),0.,6) from ImageD11.connectedpixels import s_1, s_I, s_I2, \ s_fI, s_ffI, s_sI, s_ssI, s_sfI, \ bb_mn_f, bb_mn_s, bb_mx_f, bb_mx_s,\ mx_I, mx_I_f, mx_I_s self.assertAlmostEqual(r2[0,s_1],11, 6) self.assertAlmostEqual(r2[0,s_I],17, 6)
def test_find_max(self): for t in [np.uint8, np.int8, np.uint16, np.int16, np.int32, np.uint32, np.float32, np.float]: data = np.array( [[ 1, 0, 1], [ 1, 0, 1], [ 1, 8, 1], [ 1, 1, 1]],t) bl = np.zeros(data.shape,np.int32) npx = connectedpixels.connectedpixels( data,bl,0.1) self.assertEqual(npx,1) err = np.sum(np.ravel(data-bl)) self.assertEqual(err, 7) # 8-1 res = connectedpixels.blobproperties(data, bl, npx, omega=22.) from ImageD11.connectedpixels import s_1, s_I, s_I2, \ s_fI, s_ffI, s_sI, s_ssI, s_sfI, \ bb_mn_f, bb_mn_s, bb_mx_f, bb_mx_s,\ bb_mn_o, bb_mx_o, \ mx_I, mx_I_f, mx_I_s, mx_I_o # print res,res.shape self.assertAlmostEqual(res[0][s_1],10) self.assertAlmostEqual(res[0][mx_I],8) self.assertAlmostEqual(res[0][mx_I_f],1) self.assertAlmostEqual(res[0][mx_I_s],2) self.assertAlmostEqual(res[0][mx_I_o],22)
def test1(self): import sys data1 = np.array([[ 1, 0, 1, 0, 0, 0, 0], [ 1, 0, 1, 0, 0, 0, 0], [ 1, 0, 1, 1, 0, 0, 0], [ 1, 1, 1, 0, 0, 0, 0]]) bl1 = np.zeros(data1.shape, np.intc) np1 = connectedpixels.connectedpixels(data1,bl1,0.1) data2 = np.array([[ 0, 0, 0, 0, 2, 0, 2], [ 0, 0, 0, 0, 2, 0, 2], [ 0, 0, 0, 2, 0, 2, 0], [ 0, 0, 0, 0, 2, 0, 2]]) bl2 = np.zeros(data2.shape,np.intc) np2 = connectedpixels.connectedpixels(data2,bl2,0.1) r1 = connectedpixels.blobproperties(data1, bl1, np1, omega=-10.0) r2 = connectedpixels.blobproperties(data2, bl2, np2, omega=10.0) connectedpixels.bloboverlaps(bl1,np1,r1, bl2,np2,r2, verbose=0) # check r1 is zeroed err = np.sum(np.ravel(r1)) self.assertAlmostEqual(err,0.,6) from ImageD11.connectedpixels import s_1, s_I, s_I2, \ s_fI, s_ffI, s_sI, s_ssI, s_sfI, \ bb_mn_f, bb_mn_s, bb_mx_f, bb_mx_s,\ bb_mn_o, bb_mx_o,\ mx_I, mx_I_f, mx_I_s # check total pixels self.assertAlmostEqual(r2[0,s_1], 18.0, 6) self.assertAlmostEqual(r2[0,s_I], 26.0, 6) self.assertAlmostEqual(r2[0,bb_mn_f], 0.0, 6) self.assertAlmostEqual(r2[0,bb_mx_f], 6.0, 6) self.assertAlmostEqual(r2[0,bb_mn_s], 0.0, 6) self.assertAlmostEqual(r2[0,bb_mx_s], 3.0, 6) self.assertAlmostEqual(r2[0,bb_mn_o], -10.0, 6) self.assertAlmostEqual(r2[0,bb_mx_o], 10.0, 6)
print "here: looks bad, one is wrong" pl.subplot(221) pl.imshow(a > t) pl.subplot(224) pl.imshow(bnew) pl.colorbar() pl.subplot(223) pl.imshow(bold) pl.colorbar() pl.subplot(222) pl.imshow(bold - bnew) pl.colorbar() pl.show() oldmoments = ImageD11.connectedpixels.blobproperties(a, bold, npkold, 30.0) newmoments = connectedpixels.blobproperties(a, bold, npkold, 30.0) if oldmoments.shape == newmoments.shape and (oldmoments == newmoments).all(): print "blobproperties seems OK" ImageD11.connectedpixels.blob_moments(oldmoments) connectedpixels.blob_moments(newmoments) if oldmoments.shape == newmoments.shape and (oldmoments == newmoments).all(): print "blob moments seems OK" N = 40 M = 20 b0 = [] n0 = [] m0 = [] b1 = []
def skip_test_2_transpose(self): for t in [np.uint8, np.int8, np.uint16, np.int16, np.int32, np.uint32, np.float32, np.float]: data = np.array( [[ 1, 0, 1, 0, 2, 0, 2], [ 1, 0, 1, 0, 2, 0, 2], [ 1, 0, 1, 0, 0, 2, 0], [ 1, 1, 1, 0, 2, 0, 2]],t) bl = np.zeros(data.shape,np.int32) self.assertRaises(ValueError, connectedpixels.connectedpixels, *(np.transpose(data),bl,0.1)) npx = connectedpixels.connectedpixels( np.transpose(data),np.transpose(bl),0.1) self.assertEqual(npx,2) err = np.sum(np.ravel(data-bl)) self.assertEqual(err, 0) res = connectedpixels.blobproperties(data, bl, npx) from ImageD11.connectedpixels import s_1, s_I, s_I2, \ s_fI, s_ffI, s_sI, s_ssI, s_sfI, \ bb_mn_f, bb_mn_s, bb_mx_f, bb_mx_s,\ bb_mn_o, bb_mx_o, \ mx_I, mx_I_f, mx_I_s # print res,res.shape self.assertAlmostEqual(res[0][s_1],9) self.assertAlmostEqual(res[1][s_1],7) self.assertAlmostEqual(res[0][s_I],9) self.assertAlmostEqual(res[1][s_I],14) self.assertAlmostEqual(res[0][s_I2],9) self.assertAlmostEqual(res[1][s_I2],28) # [[ 1, 0, 1, 0, 2, 0, 2], --> Fast # [ 1, 0, 1, 0, 2, 0, 2], | # [ 1, 0, 1, 0, 0, 2, 0], | # [ 1, 1, 1, 0, 2, 0, 2]],t) V Slow # f*I: # f= 0, 1, 2, 3, 4, 5, 6 # [[ 0, 0, 2, 0, 8, 0, 12], --> Fast # [ 0, 0, 2, 0, 8, 0, 12], | # [ 0, 0, 2, 0, 0,10, 0 ], | # [ 0, 1, 2, 0, 8, 0, 12]],t) V Slow # =9 =70 self.assertAlmostEqual(res[0][s_fI],9) self.assertAlmostEqual(res[1][s_fI],70) # s*I: # s= # 0[[ 0, 0, 0, 0, 0, 0, 0], --> Fast # 1 [ 1, 0, 1, 0, 2, 0, 2], | # 2 [ 2, 0, 2, 0, 0, 4, 0], | # 3 [ 3, 3, 3, 0, 6, 0, 6]],t) V Slow # =15 =20 self.assertAlmostEqual(res[0][s_sI],15) self.assertAlmostEqual(res[1][s_sI],20) # Bounding box self.assertAlmostEqual(res[0][bb_mn_f],0) self.assertAlmostEqual(res[1][bb_mn_f],4) self.assertAlmostEqual(res[0][bb_mx_f],2) self.assertAlmostEqual(res[1][bb_mx_f],6) self.assertAlmostEqual(res[0][bb_mn_s],0) self.assertAlmostEqual(res[1][bb_mn_s],0) self.assertAlmostEqual(res[0][bb_mx_s],3) self.assertAlmostEqual(res[1][bb_mx_s],3) self.assertAlmostEqual(res[1][bb_mn_o],0) self.assertAlmostEqual(res[0][bb_mx_o],0)