Opencv Python display raw image
Question: I can't figure out how to display a raw image wich conatains 640x480 pixel
information, each pixel 8 bit. (Gray image)

I need to go from an np array to Mat format to be able to display the image.

    
    
    #!/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)
    

It so confusing with the cv ,cv2. I have been trying for a while now, but i
can't find the solution.


Answer: .RAW files are not supported in OpenCV [see
imread](http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#imread),

But the file can be opened with Python and parsed with Numpy

    
    
    import numpy as np
    fd = open('flight0000.raw', 'rb')
    rows = 480
    cols = 640
    f = np.fromfile(fd, dtype=np.uint8,count=rows*cols)
    im = f.reshape((rows, cols)) #notice row, column format
    fd.close()
    

This makes a numpy array that can be directly manipulated by OpenCV

    
    
    import cv2
    cv2.imshow('', im)
    cv2.waitKey()
    cv2.destroyAllWindows()
    

