我正在嘗試使用帶有一些深度圖像的go-skeltrack庫(不使用freenect)。爲此,我需要通過我自己的替換kinect圖像來修改所提供的示例。爲此,我必須讀取圖像並稍後將其轉換爲[]uint16
變量。這是我試過的代碼是:Golang:如何將image.image轉換爲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。去:155:不能使用integerImage(類型uint16)作爲類型[] uint16 onDepthFrame的參數
這當然是指我生成一個整數而不是數組的事實。我很困惑Go
數據類型轉換的工作方式。請幫忙!
在此先感謝您的幫助。 Luis
一個PNG不是一系列的big endian uint16s。你究竟想要做什麼? – JimB