gpt4 book ai didi

Golang : How to convert an image. 图像到 uint16

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:00 25 4
gpt4 key购买 nike

我正在尝试将 go-skeltrack 库与我拥有的一些深度图像一起使用(不使用 freenect)。为此,我需要通过自己替换 kinect 图像来修改提供的示例。为此,我必须读取图像并将其稍后转换为 []uint16 变量。我试过的代码是:

file, err := os.Open("./images/4.png")
if err != nil {
fmt.Println("4.png file not found!")
os.Exit(1)
}
defer file.Close()

fileInfo, _ := file.Stat()
var size int64 = fileInfo.Size()
bytes := make([]byte, size)

// read file into bytes
buffer := bufio.NewReader(file)
_, err = buffer.Read(bytes)

integerImage := binary.BigEndian.Uint16(bytes)

onDepthFrame(integerImage)

其中 onDepthFrame 是一个具有以下形式的函数

func onDepthFrame(depth []uint16).

但是我在编译时遇到了以下错误:

./skeltrackOfflineImage.go:155: cannot use integerImage (type uint16) as type []uint16 in argument to onDepthFrame

这当然指的是我生成了一个整数而不是一个数组。我对 Go 数据类型转换的工作方式感到很困惑。请帮忙!

在此先感谢您的帮助。路易斯

最佳答案

binary.BigEndian.Uint16 使用大端字节顺序将两个字节(在 slice 中)转换为 16 位值。如果你想将字节转换为一片 uint16,你应该使用 binary.Read:

// This reads 10 uint16s from file.
slice := make([]uint16, 10)
err := binary.Read(file, binary.BigEndian, slice)

关于Golang : How to convert an image. 图像到 uint16,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41663704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com