Opencv Python mostrar imagen en bruto

No puedo imaginar cómo mostrar una imagen en bruto que contiene información de 640x480 píxeles, cada píxel de 8 bits. (Imagen gris)

Necesito pasar de una matriz np a formato Mat para poder mostrar la imagen.

#!/usr/bin/python
import numpy as np
import cv2
import sys
# Load image as string from file/database    
fd = open('flight0000.raw')
img_str = fd.read()
fd.close()

img_array = np.asarray(bytearray(img_str), dtype=np.uint8)

img = ... Conversion to Mat graycolor

cv2.imshow('rawgrayimage', img)
cv2.waitKey(0)

Es tan confuso con el cv, cv2. He estado intentando durante un tiempo, pero no puedo encontrar la solución.

Respuestas a la pregunta(3)

Su respuesta a la pregunta