Lua中将二进制数据转换为 Torch 张量
2016-2-26 1:6:28
收藏:0
阅读:104
评论:2
我有一段 Lua 代码,可以使用 luasocket 从 URL 下载图像:
local http = require('socket.http')
local image = require('image')
image_url = 'https://www.somedomain.com/someimage.jpg'
local body, code = http.request(image_url) -- body 包含 jpg 二进制数据
if not body then error(code) end -- 检查错误
为了将这个图像读入到 Torch 张量中,我将它保存在一个 jpg 文件中,并使用 image.load 读取它:
-- 以二进制模式打开一个文件来存储图像
local f = assert(io.open('./temp.jpg', 'wb'))
f:write(body)
f:close()
tensor = image.load('temp.jpg')
是否有一种方法可以直接将二进制 jpg 数据转换为 Torch 张量,而不需要写入并从硬盘上读取? 是否可以这样做:
tensor = CovertBinaryDataToTorchTensor(body)
谢谢!
点赞
用户3859312
一个潜在的解决方案是使用 graphicsmagick。
local gm = require 'graphicsmagick'
local img = gm.Image()
local ok = pcall(img.fromString, img, body)
img = img:toTensor('float', 'RGB', 'DHW')
我在 https://github.com/clementfarabet/graphicsmagick/blob/master/test/corrupt.lua 中找到了这个示例,我知道
local body, code = http.request(image_url)
将返回 body 作为一个字符串。显然,如果 pcall 返回 false,那么图片就是损坏的。
2016-05-27 20:38:04
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
请参阅 image.decompressJPG。
首先您需要将
body字符串打包进 ByteTensor。方法是利用一个 storage,并使用 string(str) 来设置内容。