【发布时间】:2017-01-15 16:53:36
【问题描述】:
我正在尝试将 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: 不能在 onDepthFrame 的参数中使用 integerImage(类型 uint16)作为类型 []uint16
这当然是指我生成单个整数而不是数组的事实。我对Go 数据类型转换的工作方式感到很困惑。请帮忙!
提前感谢您的帮助。 路易斯
【问题讨论】:
-
PNG 不是一系列大端 uint16。你到底想做什么?
标签: go types type-conversion