There is also a solution for that!
Add to your project a dependency for Support Library:

implementation ‘org.tensorflow:tensorflow-lite-support:0.2.0’

Then check documentation for ImageProcessor:
  
      

      TensorFlow
  

  
    

Process input and output data with the TensorFlow Lite Support Library 3



  

  
    
    
  

  


There you can directly resize, normalize and get the buffer from one channel like:

fun loadBitmapFromResources(context: Context, path: String): Bitmap {
val inputStream = context.assets.open(path)
return BitmapFactory.decodeStream(inputStream)
}
var loadedBitmap = loadBitmapFromResources(context, “woman.png”)


val imageProcessor = ImageProcessor.Builder()
.add(ResizeOp(width, height, ResizeOp.ResizeMethod.BILINEAR))
.add(TransformToGrayscaleOp())
.add(NormalizeOp(0.0F, 255.0F))
.build()


var tImage = TensorImage(DataType.FLOAT32)


tImage.load(loadedBitmap)
tImage = imageProcessor.process(tImage)


TensorBuffer outputBuffer = TensorBuffer.createFixedSize(new int[]{1, 4}, DataType.FLOAT32);
tflite.run(tImage.getBuffer(), outputBuffer)
val data2 = outputBuffer. getFloatArray()

So the basic operator that will give you one buffer out of three is TransformToGrayscaleOp() 1 . There at this function you can see all the procedure for transforming the bitmap to grayscale and get buffer from one channel. This is an operator I and @Xunkai_Zhang  created about 9 months ago 
If you do not want to use TensorFlow Lite Support Library then take a look at this file where there is custom manipulation of the above procedure with plain functions. Convert bitmap to grayscale:
  

      github.com
  

  
    farmaker47/OCR_with_Keras/blob/interpreter/app/src/main/java/com/soloupis/sample/ocr_keras/fragments/ocr/OcrModelExecutor.kt#L122-L145 4



      
      
          fun androidGrayScale(bmpOriginal: Bitmap): Bitmap {
              val height: Int = bmpOriginal.height
              val width: Int = bmpOriginal.width
              val bmpGrayscale = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
              val canvas = Canvas(bmpGrayscale)
              val paint = Paint()
              /*val colorMatrix = ColorMatrix()
              colorMatrix.setSaturation(0f)
              val colorMatrixFilter = ColorMatrixColorFilter(colorMatrix)*/
          
          
    // Based on OpenCv Conversion to Grayscale
              // https://docs.opencv.org/master/de/d25/imgproc_color_conversions.html#color_convert_rgb_gray
              // and info from
              // https://medium.com/mobile-app-development-publication/android-image-color-change-with-colormatrix-e927d7fb6eb4
              val matrix = floatArrayOf(
                  0.299f, 0.587f, 0.114f, 0f, 0f,
                  0.299f, 0.587f, 0.114f, 0f, 0f,
                  0.299f, 0.587f, 0.114f, 0f, 0f,
                  0f, 0f, 0f, 1f, 0f)
              val colorMatrixFilter = ColorMatrixColorFilter(matrix)
      
    
  

  This file has been truncated. show original

  

  
    
    
  

  


and get buffer from one channel:
  

      github.com
  

  
    farmaker47/OCR_with_Keras/blob/interpreter/app/src/main/java/com/soloupis/sample/ocr_keras/fragments/ocr/OcrModelExecutor.kt#L73-L91



      
      
          private fun getByteBufferNormalized(bitmapIn: Bitmap): ByteBuffer {
              val bitmap = Bitmap.createScaledBitmap(
                  bitmapIn,
                  CONTENT_IMAGE_WIDTH,
                  CONTENT_IMAGE_HEIGHT,
                  true
              )
              val width = bitmap.width
              val height = bitmap.height
              // Below 4 is for floats and 2nd one (1) for grayscale
              val mImgData: ByteBuffer = ByteBuffer.allocateDirect(1 * width * height * 1 * 4)
              mImgData.order(ByteOrder.nativeOrder())
              val pixels = IntArray(width * height)
              bitmap.getPixels(pixels, 0, width, 0, 0, width, height)
              for (pixel in pixels) {
                  mImgData.putFloat(Color.blue(pixel).toFloat() / 255.0f)
              }
              return mImgData
          }
      
    
  


  

  
    
    
  

  


Get back if you have more issues.
Thanks