使用 numpy 进行图像翻译

2023-12-25

我想执行一定量的图像平移(垂直和水平移动图像)。

问题是,当我将裁剪后的图像粘贴回画布上时,我只是得到一个白色的空白框。

有人能发现这里的问题吗?

非常感谢

img_shape = image.shape

# translate image
# percentage of the dimension of the image to translate
translate_factor_x = random.uniform(*translate)
translate_factor_y = random.uniform(*translate)

# initialize a black image the same size as the image
canvas = np.zeros(img_shape)

# get the top-left corner coordinates of the shifted image
corner_x = int(translate_factor_x*img_shape[1])
corner_y = int(translate_factor_y*img_shape[0])

# determine which part of the image will be pasted
mask = image[max(-corner_y, 0):min(img_shape[0], -corner_y + img_shape[0]),
             max(-corner_x, 0):min(img_shape[1], -corner_x + img_shape[1]),
             :]

# determine which part of the canvas the image will be pasted on
target_coords =  [max(0,corner_y),
                    max(corner_x,0),
                    min(img_shape[0], corner_y + img_shape[0]),
                    min(img_shape[1],corner_x + img_shape[1])]

# paste image on selected part of the canvas
canvas[target_coords[0]:target_coords[2], target_coords[1]:target_coords[3],:] = mask
transformed_img = canvas

plt.imshow(transformed_img)

这就是我得到的:


对于图像翻译,您可以利用有些晦涩难懂的numpy.roll功能。在此示例中,我将使用白色画布,以便更容易可视化。

image = np.full_like(original_image, 255)
height, width = image.shape[:-1]
shift = 100

# shift image
rolled = np.roll(image, shift, axis=[0, 1])
# black out shifted parts
rolled = cv2.rectangle(rolled, (0, 0), (width, shift), 0, -1)
rolled = cv2.rectangle(rolled, (0, 0), (shift, height), 0, -1)

如果你想翻转图像,使黑色部分在另一侧,你可以同时使用np.fliplr and np.flipud.

Result: shifted image

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 numpy 进行图像翻译 的相关文章

  • 如何用python脚本控制TP LINK路由器

    我想知道是否有一个工具可以让我连接到路由器并关闭它 然后从 python 脚本重新启动它 我知道如果我写 import os os system ssh l root 192 168 2 1 我可以通过 python 连接到我的路由器 但是
  • 将 4 通道图像转换为 3 通道图像

    我正在使用 OpenCV 2 4 6 我正在尝试将 4 通道 RGB IplImage 转换为 4 通道 HSV 图像 下面是我的代码 给出错误 OpenCV 错误 未知函数断言失败 我认为 cvCvtColor 支持 3 通道图像 有没有
  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • 跟踪 pypi 依赖项 - 谁在使用我的包

    无论如何 是否可以通过 pip 或 PyPi 来识别哪些项目 在 Pypi 上发布 可能正在使用我的包 也在 PyPi 上发布 我想确定每个包的用户群以及可能尝试积极与他们互动 预先感谢您的任何答案 即使我想做的事情是不可能的 这实际上是不
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • 使用字典映射数据帧索引

    为什么不df index map dict 工作就像df column name map dict 这是尝试使用index map的一个小例子 import pandas as pd df pd DataFrame one A 10 B 2
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 如何将张量流模型部署到azure ml工作台

    我在用Azure ML Workbench执行二元分类 到目前为止 一切正常 我有很好的准确性 我想将模型部署为用于推理的 Web 服务 我真的不知道从哪里开始 azure 提供了这个doc https learn microsoft co
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 将 Python 中的日期与日期时间进行比较

    所以我有一个日期列表 datetime date 2013 7 9 datetime date 2013 7 12 datetime date 2013 7 15 datetime date 2013 7 18 datetime date
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 如何应用一个函数 n 次? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 假设我有一个函数 它接受一个参数并返回相同类型的结果 def increment x return x 1 如何制作高阶函数repeat可以
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 使用 ruby​​ 调整动画 GIF 图像的大小?

    我正在尝试将 GIF 图像调整为不同的尺寸 我在 ruby 中使用 RMagick 库 但对于某些 gif 图像 即使我缩小 GIF 的大小 文件大小似乎也会增加 我正在以相同的纵横比调整图像图像的大小 这是我的代码 require rma
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解

随机推荐

  • 在 Folium HeatMapWithTime 中显示日期、id 列和其他列

    我有一个这样的出租车频率数据集 ID Date Latitude Longitude Sample Mean 01 2019 10 09 40 431753 3 711294 0 1 03 2019 10 21 40 431753 3 71
  • 如何使用 HTML5 预加载页面?

    我记得读过有关使浏览器预加载页面的元标记的文章 又是什么标签 预取包含在W3C 规范名为 资源提示 http www w3 org TR resource hints dfn prefetch 它在 Firefox Chrome IE 11
  • pygame.display.init() 对于非 root 用户失败

    Tl dr 我需要使用pygame但由于权限问题 它无法以普通用户身份初始化屏幕帧缓冲驱动程序 根可以做pygame display init 但不是用户 用户位于 视频 组中 可以在其上书写 dev fb0 用户缺少什么权限pygame
  • ionic cordova 运行 ios - 导出失败,代码 65

    我已经完成了对这个错误的研究 尝试运行时出现以下错误ionic cordova run ios livereload cordova Non system Ruby in use This may cause packaging to fa
  • 将超类合并到 Guava Objects.hashcode() 实现中的正确方法?

    可能是个愚蠢的问题 但我不想搞砸 假设我有两个 Java 类 Class1 and Class2 where Class2 extends Class1 我想覆盖Object hashcode 两个类都使用番石榴 对于超类 我有 Overr
  • 保持纵横比的 Div,同时填充其容器,该容器也保持纵横比并填充屏幕

    我正在尝试创建一个设置 其中有一个容器 参见下图 蓝色 该容器保持 16 9 的宽高比 并且始终适合屏幕 始终保持尽可能大的大小 同时完全保留在浏览器窗口中 然后它内部有一个 div 绿色 它也保持 16 9 的长宽比并填充外部容器 我需要
  • Android - 如何以批处理模式接收传感器数据?

    奇巧推出传感器批处理 https source android com devices sensors batching html 但我无法在批处理模式下从传感器读取数据 My code public class MainActivity
  • 在打字稿中找不到名称“省略”

    背景 我正在定制我的index d ts文件于src types index d ts 我需要像下面这样合并我的类型 src types index d ts declare namespace Admin interface Initia
  • 不要在 Rails 生成控制器上创建视图文件夹

    当您运行时 有没有一种方法可以使用常用的生成器配置来关闭视图文件夹和操作模板的创建rails generate controller 我在任何地方都找不到选项和代码here https github com rails rails blob
  • 如何在 R 中使用 system() 或 shell() 执行 git-bash 命令

    我想运行一些命令git bash壳通过system or shell R 中的函数 我在 Windows 上 默认 shell 是命令提示符 有什么办法可以切换 shellsystem to git bash 谢谢 If your PATH
  • 在 C++ 中重塑张量

    TensorFlow 的 C 接口似乎没有 reshape 方法 有谁知道如何转换 例如 A B C D into A B C D 看起来唯一的方法就是使用 Eigen 然而 那里的文档非常薄弱 代码是模板地狱 不容易解析 检查重塑张量是否
  • 参考和盒子之间的可变性差异

    我试图了解 Rust 指针类型及其与可变性的关系 具体来说 声明一个保存指针且本身可变的变量的方法 即可以指向其他内存 并声明该变量数据本身是可变的 即可以改变through指针变量的值 这就是我对简单引用工作方式的理解 let mut a
  • 将 FlowDocument 转换为 PDF 的最佳方法是什么

    您会如何建议我将 FlowDocument 转换为 PDF 以附加到电子邮件中 FlowDocument 是动态的 而不是静态的 我希望能够将 PDF 作为 byte 存储在内存中 而不是存储在磁盘上 但这是可以协商的 感谢您的帮助 我假设
  • 情节小提琴情节太窄

    我正在尝试根据绘图文档示例构建多个分割小提琴图 我不知道为什么小提琴被水平地弄脏了 我包括了 violinmode overlay 这是另一个人曾经建议的 但它没有什么区别 下面是我正在使用的代码 lengthlm go Figure le
  • 检查两个图像文件是否相同..校验和或哈希值?

    我正在做一些图像处理代码 其中我从 URL 下载一些图像 如 BufferedImage 并将其传递到图像处理器 我想避免将同一图像多次传递给图像处理器 因为图像处理操作的成本很高 图像的 URL 端点 如果它们是相同的图像 可能会有所不同
  • 是否可以将 USB 设备暴露给 LXC/Docker 容器?

    我有一个包含在 Docker 文件中的嵌入式系统开发映像 为了刷新代码 我需要通过 USB 串行连接到节点 例如 dev ttyACM0 对于 Docker 我使用了新的绑定安装功能 请参阅https github com dotcloud
  • 以 NSDates 作为键的 NSDictionary

    是否有可能有一个 NSdictionary 其中键是 NSDates 并且可以将其写入 可存档到磁盘 不使用属性列表 因为那里只允许使用字符串键 你应该能够使用它来编写它NSKeyedArchiver 但这有一个缺点 那就是格式更加不透明
  • AttributeError:'bytes'对象没有属性'encode'

    尝试将代码从 python2 导入到 python 3 并发生此问题
  • Fiddler 使 HttpWebRequest/HttpClient 行为出现意外

    只是想问一下 在 Fiddler 启动时尝试将某些文件上传到服务器时 是否有人遇到使用 HttpWebRequest 类 甚至新的 HttpClient 的问题 我遇到了这个错误 即允许写入流缓冲的财产HttpWeb请求当 fiddler
  • 使用 numpy 进行图像翻译

    我想执行一定量的图像平移 垂直和水平移动图像 问题是 当我将裁剪后的图像粘贴回画布上时 我只是得到一个白色的空白框 有人能发现这里的问题吗 非常感谢 img shape image shape translate image percent