当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Tensorflow.js tf.image.transform()用法及代码示例


Tensorflow.js是Google开发的开放源代码库,用于在浏览器或节点环境中运行机器学习模型以及深度学习神经网络。

.image.transform() 函数用于将指定的变换应用于图像。

用法:

tf.image.transform(image, transforms, interpolation?, fillMode?, 
fillValue?, outputShape?)

参数:此方法接受以下参数:

  • images:所述的 4d 张量,其配置为 [batch, imageHeight, imageWidth, depth]。它可以是 tf.Tensor4D、TypedArray 或 Array 类型。
  • transforms:所述的投影变换矩阵或矩阵。它是一个范围为 8 的一维张量,或者维度为 N x 8 的张量。如果单行变换是 [a0, a1, a2, b0 b1, b2, c0, c1],随后它会绘制输出点,即(x, y) 变成修改后的输入点即 (x', y') = ((a0 x + a1 y + a2) /k, (b0 x + b1 y + b2) /k),其中 k = c0 x + c1 y + 1。此外,与将输入点绘制到输出点的变换相比,变换是相反的。
  • interpolation:这是规定的插值模式。它可以是 ‘nearest’ 或 ‘bilinear’ 类型。它是可选的,默认值为 ‘nearest’。
  • fillMode:这里,超出输入边界的所述点根据所述模式进行填充。模式是可选的,可以是 ‘constant’, ‘reflect’、‘wrap’ 或 ‘nearest’ 类型。默认值为 ‘constant’。在“反射”模式下,即 (d c b a | a b c d | d c b a ),通过在最大像素的边周围进行冥想来延长输入。在“常量”模式下,即(k k k k | a b c d | k k k k),通过填充超出边的每个值以及相同的常量值 k 来延长输入。在'wrap'模式下,即(a b c d | a b c d | a b c d),输入通过围绕相对的边被拉长。在“最近”模式下,即(a a a a | a b c d | d d d d),输入被最近的像素拉长。
  • fillValue:如果声明的 fillMode 为“常量”,则它是一个浮点数,用于描述要在边之外填充的值。它是可选的,类型为 number。
  • outputShape:它是可选的,类型为 [number, number]。

返回值:它返回 tf.Tensor4D 对象。



范例1:使用 4d 张量和 2d 张量,即变换。

Javascript


// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs")
  
// Calling image.transform() method and
// Printing output
tf.image.transform(tf.tensor4d([[
  
  [[4, 7], [21, 9]],
  
  [[8, 9], [1, 33]]
  
]]), tf.tensor2d([1, 2, 3, 4, 5, 6, 7, 8], [1, 8])).print();

输出:

Tensor
    [[[[0, 0 ],
       [1, 33]],

      [[1, 33],
       [8, 9 ]]]]

范例2:使用浮点数、插值、fillMode、fillValue 和 outputShape 数组。

Javascript


// Importing the tensorflow.js library
const tf = require("@tensorflow/tfjs")
  
// Defining an array of floats
const arr = [[
  [[1.1, 1.7, 1.5, 1.1], 
  [1.7, 1.9, 8.1, 6.3]],
  [[3.3, 3.4, 3.7, 4.0], 
  [5.1, 5.2, 5.3, 5.9]]
]];
  
// Calling image.transform() method and
// Printing output
tf.image.transform(arr, tf.tensor2d(
    [1.3, 2.4, 3.5, 4.5, 5.1, 6.0, 7.2, 8.5], 
    [1, 8]),'bilinear', 'reflect', 2, [2, 2])
    .print();

输出:

Tensor
    [[[[3.3      , 3.4000001, 3.7      , 4        ],
       [4.3536587, 4.4536586, 4.6365857, 5.112195 ]],

      [[4.4178948, 4.5178947, 4.6936841, 5.1800003],
       [3.8970597, 4.0186343, 4.3869019, 4.721858 ]]]]

参考:https://js.tensorflow.org/api/latest/#image.transform




相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Tensorflow.js tf.image.transform() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。