def create_left_right(c, w):
#tanget vectors
c_shape = c.get_shape().as_list();
c1 = tf.slice(c, [1,0], [-1,-1]);
c2 = tf.slice(c, [0,0], [c_shape[0]-1,-1]);
dc = tf.sub(c1,c2);
#normalized tangent vectors
nr = tf.sqrt(tf.reduce_sum(tf.square(dc), reduction_indices = 1));
dcn = tf.transpose(tf.div(tf.transpose(dc), nr));
#average tangent
dc1 = tf.concat(0, [tf.slice(dcn, [0,0], [1,-1]), dcn]);
dc2 = tf.concat(0, [dcn, tf.slice(dcn, [c_shape[0]-2,0], [1,-1])]);
av = tf.scalar_mul(0.5, tf.add(dc1,dc2));
nr = tf.sqrt(tf.reduce_sum(tf.square(av), reduction_indices = 1));
av = tf.transpose(tf.div(tf.transpose(av), nr));
#normal
nrm = tf.mul(av, tf.constant([-1,1], "float32"));
nrm = tf.reverse(nrm, [False, True]);
left = tf.transpose(tf.mul(tf.transpose(nrm), w));
right= tf.scalar_mul(-1.0, left);
left = tf.add(left, c);
right= tf.add(right,c);
return left,right
machine_vision_b.py 文件源码
python
阅读 27
收藏 0
点赞 0
评论 0
评论列表
文章目录