使用 TensorFlow 对图像中的点进行插值采样

2023-11-25

给定的是灰度图像I作为 2D 张量(维度 W、H)和坐标张量C(暗淡。无,2)。我想解释的行C作为坐标I, 样本I在这些坐标上使用某种插值(双线性可能适合我的用例),并将结果值存储在新的张量中P(维度为无,即一维,条目数量为C有行)。

使用 TensorFlow 可以(有效)实现这一点吗?我能找到的只是调整图像大小的函数(如果您愿意,可以进行等距重采样)。但我找不到任何开箱即用的东西可以在坐标列表中进行采样。

IE。我本希望找到类似 tf.interpolate() 函数的东西:

I = tf.placeholder("float", shape=[128, 128])
C = tf.placeholder("float", shape=[None, 2])
P = tf.interpolate(I, C, axis=[0, 1], method="linear")

理想情况下,我会寻找一个允许我在 N 维张量中进行插值的解决方案I沿 M 维度使用C具有形状 (None, M) 并产生 N-M+1 维输出,如上面代码中的“axis”参数所示。

(顺便说一句,我的应用程序中的“图像”不是图片,它是来自物理模型(用作占位符时)或替代学习模型(用作变量时)的采样数据。现在,该物理模型具有 2 度自由度,因此现在插入“图像”就足够了,但我将来可能会研究更高维度的模型。)

如果现有的 TensorFlow 功能无法实现类似的功能:当我想要实现类似 tf.interpolate() 运算符的功能时,我应该从哪里开始? (文档和/或简单的示例代码)


没有执行这种插值的内置操作,但您应该能够使用现有 TensorFlow 操作的组合来完成此操作。对于双线性情况,我建议采用以下策略:

  1. 从你的张量C的索引,计算对应于四个角点的整数张量。例如(名称假设原点位于左上角):

    top_left = tf.cast(tf.floor(C), tf.int32)
    
    top_right = tf.cast(
        tf.concat(1, [tf.floor(C[:, 0:1]), tf.ceil(C[:, 1:2])]), tf.int32)
    
    bottom_left = tf.cast(
        tf.concat(1, [tf.ceil(C[:, 0:1]), tf.floor(C[:, 1:2])]), tf.int32)
    
    bottom_right = tf.cast(tf.ceil(C), tf.int32)
    
  2. 从代表特定角点的每个张量中,提取值向量I在那些点上。例如,以下函数在 2-D 情况下执行此操作:

    def get_values_at_coordinates(input, coordinates):
      input_as_vector = tf.reshape(input, [-1])
      coordinates_as_indices = (coordinates[:, 0] * tf.shape(input)[1]) + coordinates[:, 1]
      return tf.gather(input_as_vector, coordinates_as_indices)
    
    values_at_top_left = get_values_at_coordinates(I, top_left)
    values_at_top_right = get_values_at_coordinates(I, top_right)
    values_at_bottom_left = get_values_at_coordinates(I, bottom_left)
    values_at_bottom_right = get_values_at_coordinates(I, bottom_right)
    
  3. 首先计算水平方向的插值:

    # Varies between 0.0 and 1.0.
    horizontal_offset = C[:, 0] - tf.cast(top_left[:, 0], tf.float32)
    
    horizontal_interpolated_top = (
        ((1.0 - horizontal_offset) * values_at_top_left)
        + (horizontal_offset * values_at_top_right))
    
    horizontal_interpolated_bottom = (
        ((1.0 - horizontal_offset) * values_at_bottom_left)
        + (horizontal_offset * values_at_bottom_right))
    
  4. 现在计算垂直方向的插值:

    vertical_offset = C[:, 1] - tf.cast(top_left[:, 1], tf.float32)
    
    interpolated_result = (
        ((1.0 - vertical_offset) * horizontal_interpolated_top)
        + (vertical_offset * horizontal_interpolated_bottom))
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 TensorFlow 对图像中的点进行插值采样 的相关文章

  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • pandas 替换多个值

    以下是示例数据框 gt gt gt df pd DataFrame a 1 1 1 2 2 b 11 22 33 44 55 gt gt gt df a b 0 1 11 1 1 22 2 1 33 3 2 44 4 3 55 现在我想根据
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • keras加载模型错误尝试将包含17层的权重文件加载到0层的模型中

    我目前正在使用 keras 开发 vgg16 模型 我用我的一些图层微调 vgg 模型 拟合我的模型 训练 后 我保存我的模型model save name h5 可以毫无问题地保存 但是 当我尝试使用以下命令重新加载模型时load mod
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • Abaqus 将曲面转化为集合

    我一直试图在模型中找到两个表面的中心 参见照片 但未能成功 它们是元素表面 面 查询中没有选项可以查找元素表面的中心 只能查找元素集的中心 找到节点集的中心也很好 但是我的节点集没有出现在工具 gt 查询 gt 质量属性选项中 而且我找不到
  • 当玩家触摸屏幕一侧时,如何让 pygame 发出警告?

    我使用 pygame 创建了一个游戏 当玩家触摸屏幕一侧时 我想让 pygame 给出类似 你不能触摸屏幕两侧 的错误 我尝试在互联网上搜索 但没有找到任何好的结果 我想过在屏幕外添加一个方块 当玩家触摸该方块时 它会发出警告 但这花了很长
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • VSCode:调试配置中的 Python 路径无效

    对 Python 和 VSCode 以及 stackoverflow 非常陌生 直到最近 我已经使用了大约 3 个月 一切都很好 当尝试在调试器中运行任何基本的 Python 程序时 弹出窗口The Python path in your
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 在python中,如何仅搜索所选子字符串之前的一个单词

    给定文本文件中的长行列表 我只想返回紧邻其前面的子字符串 例如单词狗 描述狗的单词 例如 假设有这些行包含狗 hotdog big dog is dogged dog spy with my dog brown dogs 在这种情况下 期望
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例

随机推荐

  • 分支在 ?: 运算符?

    对于现代硬件上的典型现代编译器 运算符结果会产生影响指令管道的分支吗 换句话说 调用这两种情况以避免可能的分支 哪个更快 bool testVar someValue Used later purge white purge black 或
  • 如何隐藏 Html 日历面板中的年份部分?

    有没有办法隐藏年份部分 html 日历面板 只显示日历上的月份和日期部分 不幸的是 没有简单的答案 但是您可以使用替代方法 通过使用 JavaScript 强制用户仅输入月份和日期 var year new Date getFullYear
  • 按 ID 删除数百万行的最佳方法

    我需要从 PG 数据库中删除大约 200 万行 我有一个需要删除的 ID 列表 然而 我尝试做到这一点的任何方法都需要几天的时间 我尝试将它们放入表中并以 100 为一批进行操作 4 天后 该操作仍在运行 仅删除了 2972 68 行 我必
  • 带有数字和默认键盘的 UITextField

    为 邮政编码 邮政编码 字段创建了一个 UITextField 其键盘类型为 UIKeyboardTypeDefault 我想使用默认键盘 但希望默认显示数字和符号与字母相对应 当您在 Contacts app 中输入地址时 Apple 会
  • 使用 crontab 运行脚本时无法导入 Python MySQL 模块

    我正在使用 crontab 运行需要 MySQLdb 模块的 python 脚本 当我从命令行运行此脚本时 一切正常 但是 尝试使用 crontab 运行它会引发此错误 Traceback most recent call last Fil
  • Apple 的文本渲染如何绘制字体没有的字形?

    我对字体和编码有了基本的了解 但最近我不得不在我的舒适区之外做一些事情 转动字符 0x2716 重乘 x 变为CGPathRef 我使用了核心文本CTFontGetGlyphsForCharacters来完成这项工作 我明白 一个CGGly
  • 无法将不可变值作为 inout 参数传递:文字不可变,为什么?

    我想做一个函数来交换两个变量 但对于新的 swift 我不能使用 var import UIKit func swapF inout a Int inout with b Int print x a and y b a b b a prin
  • 如何在 Symfony 2 中通过伪造登录来测试 ACL 进行开发

    我正在开发基于 Symfony 2 的 Web 应用程序的一部分 与许多应用程序一样 需要身份验证和授权 我如何继续开发 通过传递或伪造登录来考虑 ACL 在文档中 login check身份验证和会话部分是否透明 我想我可能需要实现一个版
  • 用于调整窗口大小的自定义挂钩

    我正在创建一个自定义挂钩来捕获浏览器窗口大小 以便让我知道它是否是移动的 目前 我的问题是 React 告诉我它无法在 useEffect 挂钩中保留 screenSize 的变量值 我该如何解决这个问题 export default fu
  • 如何在 python 中进行 alpha 抠图

    如何在 python 中进行 alpha 抠图 更具体地说 如何提取图像的 alpha 通道 给定一个将像素标记为 100 前景 白色 100 背景 黑色 或未知 灰色 输入图像 输入三元图 使用库进行 alpha 抠图 这里有两个选项 都
  • WindowsFormsHost 是否适合用途(.net WPF 托管 WinForms)?

    GUI 驱动的应用程序需要托管一些基于 WinForms 的预构建组件 这些组件使用 GDI 和 DirectX 的组合提供高性能交互式视图 视图处理控制输入并显示自定义图形渲染 供应商在 WinForms 线束中对组件进行测试 商业应用程
  • 为什么返回 (h = key.hashCode()) ^ (h >>> 16) 而不是 key.hashcode ?

    我不认为这种方法可以避免碰撞 我认为如果key hashcode大于table length 就会发生冲突 更新 其实我指的是HashMap hash在 JDK 1 8 中 我对向下扩展高位的好处感到有点困惑 现在 我想在这个的帮助下我很清
  • 如何在本机反应中检测杀死应用程序中的应用程序?

    当应用程序被用户终止时 我想更改 API 的状态数据 我尝试过使用 componentWillUnmount 在应用程序关闭时更改数据 我还使用 AppState handleAppStateChange nextAppState gt i
  • 如何使用Jquery AJAX post传递多维数组?

    我一直在使用 Serialize 通过 Post 传递复选框表单数据 以获取可以容纳同一类别的多个项目的篮子 当我使用提交按钮发布它们时 它可以正常工作 可以在一个类别下传递和显示多个值 但是 当我使用 Jquery serialize 时
  • 错误:未找到:make

    我无法安装任何需要的软件包node gyp 错误消息是这样的 npm install node protobuf info trying registry request attempt 1 at 22 43 57 http GET htt
  • 如何转置 SQLite 中的表?

    你好 我在 SQlite 中有一个这样的表 User Group Role John Smith A admin John Smith B user Jane Doe A user Jane Doe B limit Jane Doe C a
  • WrapPanel:尝试使 ItemWidth 等于任何一个元素的最大宽度

    希望没有其他人问过这个问题 但我已经搜索过 但找不到任何提及 如果我错过了另一个解释这一点的问题 请随时为我指出正确的方向 我有一个带有数据绑定项的 WrapPanel 该项本质上包含一个图标和一些可变长度文本 这是图表的图例 我真的很喜欢
  • 打印可滚动的 Windows 窗体。 [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 C 中截取 Winforms 控件 表单的屏幕截图 我有一个带有名称和图片列表的 Windows 窗体 该列表很长 因此有一个滚动面板 现在 我想打印此表单 但不能 因为打印功能仅打印 可见
  • 为什么在 ScrollViewer 内部单击时我的 TextBox 会获得焦点?

    在我的 Windows 应用商店应用程序中 我创建了一个 ScrollViewer 里面有一个网格 里面有一些文本框 每当用户单击 ScrollViewer 中的任意位置时 第一个 TextBox 就会获得焦点 我不知道为什么会发生这种情况
  • 使用 TensorFlow 对图像中的点进行插值采样

    给定的是灰度图像I作为 2D 张量 维度 W H 和坐标张量C 暗淡 无 2 我想解释的行C作为坐标I 样本I在这些坐标上使用某种插值 双线性可能适合我的用例 并将结果值存储在新的张量中P 维度为无 即一维 条目数量为C有行 使用 Tens