前言

没什么重要的,就是想测试一下tensorflow的投影变换函数tf.contrib.image.transform中每个参数的含义

国际惯例,参考文档

官方文档

描述

调用方法与默认参数:

tf.contrib.image.transform(images,transforms,interpolation='NEAREST',output_shape=None,name=None
)

输入解释:

  • images: 输入图像的占位符,通常三种输入(图像数量,高,宽,通道),(高,宽,通道),(高,宽)

  • transforms:投影变换矩阵,维数为8的向量,可以是(1,8)或(N,8),假设是(a1,a2,a3,b1,b2,b3,c1,c2)(a_1,a_2,a_3,b_1,b_2,b_3,c_1,c_2)(a1​,a2​,a3​,b1​,b2​,b3​,c1​,c2​),执行的操作就是将(x,y)投影到(x’,y’)
    [a1a2a3b1b2b3]×[xy1]×1k=[x′y′]w.t.l=c1x+c2y+1\begin{bmatrix} a_1&a_2&a_3\\ b_1&b_2&b_3 \end{bmatrix}\times \begin{bmatrix} x\\y\\1 \end{bmatrix}\times \frac{1}{k}=\begin{bmatrix} x'\\y' \end{bmatrix}\\ w.t.\quad l=c_1x+c_2y+1 [a1​b1​​a2​b2​​a3​b3​​]×⎣⎡​xy1​⎦⎤​×k1​=[x′y′​]w.t.l=c1​x+c2​y+1
    通俗点就是:
    [x′,y′]=[(a1x+a2y+a3)/k,(b1x+b2y+b3)/k][x', y'] = [(a_1 x + a_2 y + a_3) / k, (b_1 x + b_2 y + b_3) / k] [x′,y′]=[(a1​x+a2​y+a3​)/k,(b1​x+b2​y+b3​)/k]
    通过矩阵的形式更能看出来是坐标变换。

  • interpolation:插值方法,近邻插值NEAREST,双线性插值BILINEAR

  • output_shape:输出大小,默认是输入大小

代码

基本代码:

import numpy as np
import tensorflow as tf
import cv2#创建装图像的容器
input=tf.placeholder(dtype=np.uint8,shape=[640,1024,3]) #高,宽,通道
#创建操作
trans_op=tf.contrib.image.transform(input,[1,0,0,0,1,0,0,0])#读取图像
img=cv2.imread('test_img.jpg')#执行操作
with tf.Session() as sess:trans_img=sess.run(trans_op,feed_dict={input:img})cv2.imshow('img',trans_img)
cv2.waitKey()
cv2.destroyAllWindows()

可以得到原图为:

修改a1a_1a1​

trans_op=tf.contrib.image.transform(input,[2,0,0,0,1,0,0,0])

修改a2a_2a2​

trans_op=tf.contrib.image.transform(input,[1,0.5,0,0,1,0,0,0])

修改a3a_3a3​

trans_op=tf.contrib.image.transform(input,[1,0,100,0,1,0,0,0])

修改b1b_1b1​

trans_op=tf.contrib.image.transform(input,[1,0,0,0.5,1,0,0,0])

修改b2b_2b2​

trans_op=tf.contrib.image.transform(input,[1,0,0,0,2,0,0,0])

修改b3b_3b3​

trans_op=tf.contrib.image.transform(input,[1,0,0,0,1,100,0,0])

调整c1c_1c1​

trans_op=tf.contrib.image.transform(input,[1,0,0,0,1,0,0.0005,0])

调整c2c_2c2​

trans_op=tf.contrib.image.transform(input,[1,0,0,0,1,0,0,0.0005])

总结

前六个参数按顺序,讲道理应该是:左缩放,左拉扯,左移,上拉扯,上缩放,上移

后两个参数不清楚名称是什么,感觉扭曲了一下,而且值要很小

代码就不分享了,上面已经贴出完整的了。

【TensorFlow-windows】投影变换相关推荐

  1. tensorflow windows

    conda create -n py35 python=3.5 activate py35 pip install --ignore-installed --upgrade https://stora ...

  2. TensorFlow windows之Tensorboard使用

    TensorBoard是什么 TensorBoard:Tensorflow自带的可视化工具,TensorBoard 来展现 TensorFlow 图像,绘制图像生成的定量指标图以及附加数据 关于如何在 ...

  3. TensorFlow windows安装

    官方安装介绍 https://www.tensorflow.org/install/install_windows TensorFlow有两种安装版本 1. CUP Only 如果操作系统没有 NVI ...

  4. faster-rcnn tensorflow windows python 训练自己数据

    本文按照博客: http://blog.csdn.net/Pennypinch/article/details/77198357<1> http://blog.csdn.net/Penny ...

  5. faster-rcnn tensorflow windows demo运行

    TF环境的搭建和CUDA的安装不再赘述,首先大家还是找到原文以及gitub的readme仔细阅读: 有任何问题欢迎大家指正~.~ 1本文主要是根据:http://blog.csdn.net/Penny ...

  6. Windows安装TensorFlow

    为什么80%的码农都做不了架构师?>>>    本文将解释如何在Windows下安装TensorFlow. 确定安装哪类TensorFlow 需要先确定哪种类型的TensorFlow ...

  7. Windows下首次安装TensorFlow失败

    TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算 ...

  8. TensorFlow在windows 下的安装

    前言:从2015年谷歌将tensorflow开源后,这位用于深度学习的强大神器便把Caffe,Keras,Torch7等这一票人全部干掉,github上的star和fork是一路飙升,几乎是它们的总和 ...

  9. windows环境下tensorflow安装过程详解(亲测安装成功后测试那块)

    写在最前: 在安装过程中遇到很多坑,一开始自己从官网下载了Python3.6.3或者Python3.6.5或者Python3.7.1等多个版本,然后直接pip install tensorflow或者 ...

  10. TensorFlow:Windows下使用TensorFlow-Python版本

    原文链接:Win10X64下安装使用TensorFlow 安装TensorFlow 由于Google那帮人已经把 TensorFlow 打成了一个 pip 安装包,所以现在可以用正常安装包的方式安装 ...

最新文章

  1. 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
  2. CSS进阶(7)—— 内联元素的掌管者line-height和vertical-align(上)
  3. 12款响应式的 jQuery 旋转木马(传送带)插件
  4. 4 Convex optimization problems
  5. linux依据时间过滤文件,详解Linux查找目录下的按时间过滤的文件
  6. Veeam ONE v10.0.2.1094 安装教程+许可证
  7. android修改对话框大小设置,android – 如何更改对话框首选项消息的文本大小?...
  8. Ignite 安装启动(本地单机)
  9. vim实现CTRL+S为保存快捷键
  10. 【读心术】之微表情——《Lie to me 》摘自百度百科
  11. 如何修改PDF文件的标题
  12. 2014联通见习感悟
  13. 【LeetCode-SQL】579. 查询员工的累计薪水
  14. 【vue】实现超过两行或多行显示展开收起 (单个展开收起和数组多个展开收起)
  15. PHPStorm 显示自动换行
  16. 【计算机网络】Socket详解
  17. JavaScript入门笔记(带源文件)
  18. win与linux谁运行快,Linux、Windows,谁速度更快
  19. 对口升学2018计算机试题,河南省2018年计算机类基础课 对口升学考试题
  20. 力扣算法JS LC [714. 买卖股票的最佳时机含手续费] LC [968. 监控二叉树]

热门文章

  1. java web 树形管理_java web 后台树形菜单排序
  2. Pytorch(四) --基于Pytorch实现线性回归
  3. 题目 2055: 等待戈多(最短路)
  4. 王者荣耀(01背包)
  5. mysql create database to_MySQL中CREATE DATABASE和CREATE SCHEMA区别(转)
  6. 百度步行导航加poi搜索android,【百度地图】带地图显示控件、导航控件、POI查找控件...
  7. 【算法竞赛学习】数据分析达人赛3:汽车产品聚类分析
  8. .net framework与java,分布式事务:.NET Framework与.NET Core
  9. springcloud 之 EurekaServer 服务注册集群
  10. Oauth 2.0概述