日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

【TensorFlow-windows】投影变换

發布時間:2023/12/13 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【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?=[xy?]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】投影变换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。