gotch/tensor/image.go

46 lines
960 B
Go

package tensor
import "C"
import (
// "unsafe"
lib "github.com/sugarme/gotch/libtch"
)
// LoadHwc returns a tensor of shape [height, width, channels] on success.
func LoadHwc(path string) (retVal Tensor, err error) {
ctensor := lib.AtLoadImage(path)
err = TorchErr()
if err != nil {
return retVal, err
}
retVal = Tensor{ctensor}
return retVal, nil
}
// SaveHwc save an image from tensor. It expects a tensor of shape [height,
// width, channels]
func SaveHwc(ts Tensor, path string) (err error) {
lib.AtSaveImage(ts.ctensor, path)
return TorchErr()
}
// ResizeHwc expects a tensor of shape [height, width, channels].
// On success returns a tensor of shape [height, width, channels].
func ResizeHwc(ts Tensor, outWidth, outHeight int64) (retVal Tensor, err error) {
ctensor := lib.AtResizeImage(ts.ctensor, outWidth, outHeight)
err = TorchErr()
if err != nil {
return retVal, err
}
retVal = Tensor{ctensor}
return retVal, nil
}