Goのimageで入力された画像がグレイスケールかRGBAかを判定したいです。どのようにすれば実現できるのでしょうか。
image.ColorModel()で判定できるかと考えましたができませんでした。

switch img.ColorModel() {
        case color.GrayModel:
            res = make([][][]float32, 1)
            res[0] = make([][]float32, height)
        case color.RGBAModel:
            res = make([][][]float32, 3)
            for i := 0; i < 3; i++ {
                res[i] = make([][]float32, height)
            }
        case color.RGBA64Model:
            res = make([][][]float32, 3)
            for i := 0; i < 3; i++ {
                res[i] = make([][]float32, height)
            }
        case color.NRGBAModel:
            fmt.Println("NRGBAModel")
        case color.NRGBA64Model:
            fmt.Println("NRGBA64Model")
        default:
            fmt.Println(img.ColorModel())
        }

上のようなコードでは動きませんでした。

追記
グレイスケールの画像は上記コードで判定できました。しかし、RGBAのものを判定できませんでした。