1. 在Tensorflow处理图片是一件很常见的事情。 对图片的操作,必定涉及到了Array 处理图片使用时需要使用matplotlib 所以要安装matplotlib, python好像已经安装了,若没有安装的话,自行安装。 二. 加载图片 ![]() 该照片放置的目录和该脚本放置的目录一致。 打印的数据为图像的分辨率和像素为几通道。 三. 显示图片 在二的基础上,添加以下代码: ![]() ![]() 使用plt来查看图片。 四: Tensorflow 操作图片,将图片进行旋转 ![]() x=tf.transpose(x,perm=[1,0,2]) 使用了TensorFlow中的transpose函数方法。 五. 今天使用tensorflow遇到一个函数 tf.transpose(X,perm = [0,2,1]) 这个函数就是将tensor的对应的维数进行置换,这里发现几点, 1.tensorflow 里面的 tensor是先从高维向低维算起的比如:'x' is [ [ [1 2 3] ] x的维数就是【2,2,3】 有两对 [[ ]] 第一个2, [[ ]]中有两对[ ],第二个2, [ ]有三个数,1,2,3即[1 2 3]
而perm的意思就是将tensor对应的不同的维数之间变换
这里perm=[0,1,2],0对应x维数的第一个2, 1对应第二个2, 2对应维数3. 比如perm = 【2,1,0】,则原tensor = 【3,2,2】,全部倒过来 perm = 【0,2,1】 , 则原tensor = 【2,3,2】, 最后两维置换 tf.transpose(b, perm=[0, 2, 1]) ==> [2 5] [3 6]] [[7 10] [8 11] [9 12]]] 六 图片的轴对称旋转 ![]() ![]() 最后显示的结果为: tf.reverse_sequence(input, seq_lengths, seq_dim, batch_dim=None, name=None)![]() batch_dim
指明在哪一维上作处理, 比如输入的是一个rgb图片,32*24*3,32为图片的高,24为图片的宽,32是行,24对应列。 如果我希望将每一行从左到 右的数据翻转, 那么我需要指定batch_dim=0,seq_dim=1, 如果我希望每一列从上到下翻转,则指定 batch_dim=1,seq_dim=0。 如果我指定batch_dim=0,即希望每一行翻转, 则seq_lengths的长度应等于32,即需要 指定每一行从哪一列到哪一列翻转, 比如seq_lengths[0]=12,则希望第一行下标为0~12的列翻转, seq_dim=1表示对列操作。 seq_lengths[i]的值应小于一共有多少列=24 |
|
来自: 雪柳花明 > 《TensorFlow》