for i in range(block_3d.shape[1]): for j in range(block_3d.shape[2]): list1 = block_3d[:, i, j] r = np.float(np.max(list1)) mip[i, j, 1] = r for i in range(block_3d.shape[0]): for j in range(block_3d.shape[2]): list1 = block_3d[i, :, j] r = np.float(np.max(list1)) mip[i, j, 2] = r return mip if __name__ == '__main__': margin = 32 imgvox = loadimg('/media/ttt/tyh1/shuju/m3.tif') labelmap = loadimg('/media/ttt/tyh1/shuju/m3_b2.tif') marker = loadmarker('/media/ttt/tyh1/shuju/m3_b.marker') marker = marker.astype(int) marker = marker - 1 marker[:, 1] = imgvox.shape[1] - marker[:, 1] swc = loadswc('/media/ttt/tyh1/shuju/m3_b.marker') swc = swc[:, 2:5] swc = swc.astype(int) swc = swc - 1 swc[:, 1] = imgvox.shape[1] - swc[:, 1] labelmap = labelmap > 0 h5file = '/media/ttt/E81AA8261AA7EFAC/0000/train_dense9f1.hdf5'
pimg[margin:margin + image.shape[0], margin:margin + image.shape[1], margin:margin + image.shape[2]] = image return pimg def de_padding(pimg,margin): imgvox = np.zeros((pimg.shape[0]-2*margin, pimg.shape[1]-2*margin, pimg.shape[2]-2*margin)) imgvox = pimg[margin:margin + imgvox.shape[0], margin:margin + imgvox.shape[1], margin:margin + imgvox.shape[2]] return imgvox if __name__=='__main__': marker = loadmarker('/media/tyhhnu/tyh1/shuju/ms1_b.marker') marker = marker.astype(int) imgvox = loadimg('/media/tyhhnu/tyh1/shuju/ms1.tif') margin = 28 R = 12 marker = marker - 1 marker[:,1] = imgvox.shape[1] - marker[:,1] marker = marker + margin pimg = padding(imgvox , margin) bimg = np.zeros(pimg.shape) for i in range(marker.shape[0]): blocks = pimg[marker[i,0]-R:marker[i,0]+R+1, marker[i,1]-R:marker[i,1]+R+1, marker[i,2]-4:marker[i,2]+4+1] # blocks = blocks>(pimg[marker[i,0],marker[i,1],marker[i,2]]-10) blocks = blocks>0 bimg[marker[i,0]-R:marker[i,0]+R+1, marker[i,1]-R:marker[i,1]+R+1,
np.random.shuffle(swc) idx = np.vstack((ones, zeros[0:ones.shape[0], :], swc[0:z_s, :])) np.random.shuffle(idx) return idx + margin def mip(block_3d): mip = np.zeros([block_3d.shape[0], block_3d.shape[1], 3], dtype=float) mip[:, :, 0] = np.max(block_3d, 0) mip[:, :, 1] = np.max(block_3d, 1) mip[:, :, 2] = np.max(block_3d, 2) return mip if __name__ == '__main__': imgvox = loadimg( '/media/ttt/E81AA8261AA7EFAC/xuexi/3Dyuantu/OP_5_stack.tif') labelmap = np.zeros(imgvox.shape) smarker = loadmarker( '/media/ttt/E81AA8261AA7EFAC/xuexi/3Dyuantu/OP5_b.marker') smarker = smarker - 1 smarker = smarker[:, 0:3] # smarker[:,1]=imgvox.shape[1]-smarker[:,1]-1 marker = np.empty((0, 3)) for i in range(smarker.shape[0]): x, y, z = smarker[i, :] blocks = imgvox[math.floor(x) - 1:math.floor(x) + 2, math.floor(y) - 1:math.floor(y) + 2, math.floor(z) - 1:math.floor(z) + 2] corrr = np.argwhere(blocks) print(corrr.shape)
mip[i,j,0]=r for i in range(block_3d.shape[1]): for j in range(block_3d.shape[2]): list1=block_3d[:,i,j] r=np.float(np.max(list1)) mip[i,j,1]=r for i in range(block_3d.shape[0]): for j in range(block_3d.shape[2]): list1=block_3d[i,:,j] r=np.float(np.max(list1)) mip[i,j,2]=r return mip if __name__ == '__main__': margin = 28 imgvox = loadimg('/media/tyhhnu/tyh1/shuju/ms1.tif') labelmap = loadimg('/media/tyhhnu/tyh1/shuju/ms1_b2.tif') marker = loadmarker('/media/tyhhnu/tyh1/shuju/ms1_b.marker') marker = marker.astype(int) marker = marker - 1 marker[:,1] = imgvox.shape[1] - marker[:,1] labelmap = labelmap>0 h5file='/media/tyhhnu/tyh1/shuju/hdf5/train_dense11p2.hdf5' img_name = 'ms1tif' n_each = 1000 idx = getcand(imgvox,marker,margin,n_each) labelmap = padding(labelmap,margin,) pimg = padding(imgvox,margin) tiqu(pimg, labelmap,
'/media/ttt/Elements/TanYinghui/TP/5_4.tif', '/media/ttt/Elements/TanYinghui/TP/5_7.tif' ] filr = [ '/media/ttt/LANKEXIN/shuju/5_1.tif', '/media/ttt/LANKEXIN/shuju/5_4.tif', '/media/ttt/LANKEXIN/shuju/5_7.tif' ] film = [ '/media/ttt/LANKEXIN/shuju/5_1.tif.marker', '/media/ttt/LANKEXIN/shuju/5_4.tif.marker', '/media/ttt/LANKEXIN/shuju/5_7.tif.marker' ] for i in range(len(filr)): imgvox = loadimg(filr[i]) imgvox1 = loadimg(fild[i]) imgvox[imgvox < 5] = 0 can_idx = getcand(imgvox, imgvox1, margin) can_idx = can_idx.astype(int) pimg = padding(imgvox, margin) pp = test(pimg, ckptfile, batch_size, can_idx) print('test over') nm = np.argwhere(pp[:, 1] > 0.5) zb = can_idx[nm, :] zb = np.squeeze(zb) zb = zb - 28 zb[:, 1] = imgvox.shape[1] - zb[:, 1] - 1 zb = zb + 1 # zb1 = np.hstack((zb,pp[nm,1]))
def train(trainpath, ckptfile): immm = loadimg(trainpath) print ('testing() called') V = 64 vz = 32 margin = 32 re_filed = 0 # data_size = get_datasize(trainpath) # print ('training size:', data_size) with tf.Graph().as_default(): # placeholders for graph input view_ = tf.placeholder('float32', shape=(None, V, V, vz,1), name='im0') # y_ = tf.placeholder('int64', shape=(N`-one,V-16,V-16,V-16), name='y') keep_prob_ = tf.placeholder('float32') # graph outputs fc8 = model.inference_multiview(view_, g_.NUM_CLASSES, keep_prob_) # pr=tf.nn.softmax(fc8) # loss = model.loss(fc8, y_) # train_op = model.train(loss, global_step, data_size) prediction = model.classify(fc8) # must be after merge_all_summaries # validation_loss = tf.placeholder('float32', shape=(), name='validation_loss') # validation_summary = tf.summary.scalar('validation_loss', validation_loss) # validation_acc = tf.placeholder('float32', shape=(), name='validation_accuracy') # validation_acc_summary = tf.summary.scalar('validation_accuracy', validation_acc) saver = tf.train.Saver(tf.all_variables(), max_to_keep=1000) sess = tf.Session(config=tf.ConfigProto(log_device_placement=FLAGS.log_device_placement)) saver.restore(sess, ckptfile) print ('restore variables done') immm = padding(immm,margin) # zmmm = np.zeros(immm.shape) imum = get_cen(immm.shape,V,V,vz,margin,re_filed) for num in range(len(imum)): print(num) center_point = imum[num] # center_point[0] = center_point[0] +margin # center_point[1] = center_point[1] +margin # # center_point[2] = center_point[2] +margi/home/ttt/model/model3.cpkt-41000n #print('center point:', center_point) image = immm[center_point[0]-V//2:center_point[0]+V//2, center_point[1]-V//2:center_point[1]+V//2, center_point[2]-vz//2:center_point[2]+vz//2] if image.shape !=(V,V,vz): break image = np.expand_dims(image, axis = 0) image = np.expand_dims(image, axis = 4) # start_time = time.time() feed_dict = {view_: image, keep_prob_: 0.5 } # feed_dict_1 = {view_: batch_x, # keep_prob_: 0.5 } # p_fc,p_softmax = sess.run( # [fc8,pr], # feed_dict=feed_dict_1) # print(p_fc,p_softmax) pred = sess.run( prediction, feed_dict=feed_dict) # pred = np.argmax(pred,-1) pred = pred[:,:,:,:,1] pred = np.array(pred) pred = np.squeeze(pred) bnn = np.argwhere(pred) pred = pred>0.5 print(bnn.shape[0]) immm[center_point[0]-V//2:center_point[0]+V//2, center_point[1]-V//2:center_point[1]+V//2, center_point[2]-vz//2:center_point[2]+vz//2] = pred immm = depadding(immm,margin) immm[immm>1] = 0 immm = immm*255 writetiff3d('/media/ttt/Elements/TanYinghui/TP/5_7.tif',immm.astype('uint8'))