Ich versuche, die go-skeltrack-Bibliothek mit einigen Tiefenbildern zu verwenden, die ich habe (nicht mit freenect). Dazu muss ich das mitgelieferte Beispiel ändern, indem ich die Kinect-Bilder durch meine eigenen ersetze. Dafür muss ich ein Bild lesen und später in eine []uint16
Variable umwandeln. Der Code, den ich versucht ist:Golang: Wie man ein image.image in uint16 umwandelt
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)
Wo onDepthFrame eine Funktion ist, die die Form
func onDepthFrame(depth []uint16).
hat, aber ich bin immer den folgenden Fehler beim Kompilieren:
./skeltrackOfflineImage. go: 155: kann nicht integerImage (type uint16) als type [] uint16 in argument zu onDepthFrame
Das bezieht sich natürlich auf die Tatsache, dass ich eine einzelne Ganzzahl anstelle eines Arrays generiert habe. Ich bin ziemlich verwirrt über die Art und Weise, wie Go
Datentypen Konvertierung funktioniert. Bitte helfen Sie!
Vielen Dank im Voraus für Ihre Hilfe. Luis
Ein Png ist keine Serie von Big Endian Uint16s. Was genau versuchst du zu tun? – JimB