http://blog.csdn.net/qq_32166627/article/details/52718612 上一篇讲的是图片的旋转与翻转,这节讲图片的截取: 用到了tensorflow中的slice()函数, slice()函数原型为: tf.slice(input_, begin, size, name=None) 函数有4个参数: 1,input_ :图片的矩阵输入格式。 2,begin :开始截取的位置(输入矩阵的某一点,通常是[x,y,z]的形式) 3,size :从开始截取点向各维度截取的距离(通常也是[x,y,z]的形式) 4,name :该tensor的名字。 官网例子:
解读:
1,input是一个3维向量,作为tf.slice()函数的输入值(待截取的tensor) 2,第二个参数 [ 1,0,0 ] 是截取的起始点,这里就是第2行的第一个数字 “3” 3,第三个参数有3个示例,只讲(1)(3): (1) [ 1,1,3 ] 是截取的距离,第一个维度截取1个距离,于是首先截取出[ [ [ 3,3,3 ] , [ 4,4,4 ] ] ] 这部分。第二个维度截取1个距离,那么再截出[ [ [ 3,3,3 ] ] ]这部分。第3个维度截取3个距离,即将全部3个元素截取,得到结果。 (3)[ 2,1,3 ] 第一个维度是2,于是截出来 [ [ [ 3,3,3 ] , [ 4,4,4 ] , [ [ 5,5,5 ] , [ 6,6,6 ] ] ] 这部分。第二个维度是1,再截取一个距离,得: [ [ [ 3,3,3 ] , [ [ 5,5,5 ] ] ] 这部分。第三个维度截3个距离,得到结果,若截2个距离,得: [ [ [ 3,3 ] , [ [ 5,5 ] ] ] 注: (1)第3个参数中可以用-1,如[1,-1,-1],表示第2,3维度从起点一直截取到最后。 (2)多维向量不要理解为线,面,体之类的,那样的话3维以上的点就会对应错。有多少层符号"[ ]",就有多少维,从外层向内层,维度依次增加。 ——————————————————————————————————————————下面是一个截取图片的例子:
那么,整个图片就相当于横着切两刀,取中间的部分。 |
|
来自: 雪柳花明 > 《TensorFlow》