Opencv Python display raw image

后端 未结 3 1548
广开言路
广开言路 2021-01-02 07:14

I can\'t figure out how to display a raw image which contains 640x480 pixel information, each pixel 8 bit. (Gray image)

I need to go from an np array to Mat format to

相关标签:
3条回答
  • 2021-01-02 07:32

    Just an example if you want to save your 'raw' image to 'png' file (each pixel 32 bit, colored image):

    import numpy as np
    import matplotlib.pyplot as plt
    
    img = np.fromfile("yourImage.raw", dtype=np.uint32)
    print img.size #check your image size, say 1048576
    #shape it accordingly, that is, 1048576=1024*1024
    img.shape = (1024, 1024)
    
    plt.imshow(img)
    plt.savefig("yourNewImage.png")
    
    0 讨论(0)
  • 2021-01-02 07:42

    .RAW files are not supported in OpenCV see 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()
    
    0 讨论(0)
  • 2021-01-02 07:48
    #!/usr/bin/python
    #code to display a picture in a window using cv2
    import cv2
    
    cv2.namedWindow('picture',cv2.WINDOW_AUTOSIZE)
    frame=cv2.imread("abc.jpg")
    cv2.imshow('picture',frame)
    if cv2.waitKey(0) == 27:
            cv2.destroyAllWindows()
    
    0 讨论(0)
提交回复
热议问题