【TensorFlow-windows】投影变换
前言
沒什么重要的,就是想測試一下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】投影变换的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 轩辕剑之天之痕盘古技能介绍 天赋详解及阵
 - 下一篇: 《恋与制作人》周棋洛生日快乐 协奏情意绵