pythoncamerapyspin

How to get color image from point grey camera with Spinnaker in python?


I am trying to get color images (no difference in rgb or bgr in my case) from flea3 camera (with the code "FL3-U3-32S2C-CS", which shows its a color camera) but my code generates grayscale photos... what is wrong in the following code snippet? any idea?

    #  Begin acquiring images
    cam.BeginAcquisition()

    #  Retrieve next image and convert it
    image_result = cam.GetNextImage()
    img_converted = image_result.Convert(PySpin.PixelFormat_RGB8, PySpin.HQ_LINEAR)

    #  Convert the Image object to RGB array
    width = image_result.GetWidth()
    height = image_result.GetHeight()
    rgb_array = img_converted.GetData()
    rgb_array = rgb_array.reshape(height, width, 3)

Solution

  • The following shows, how this could be done:

    ### Set Pixel Format to RGB8 ###
    node_pixel_format = 
    PySpin.CEnumerationPtr(nodemap.GetNode('PixelFormat'))
    
    if not PySpin.IsAvailable(node_pixel_format) or not PySpin.IsWritable(node_pixel_format):
       print('Unable to set Pixel Format to RGB8 (enum retrieval). Aborting...')
    node_pixel_format_RGB8 = node_pixel_format.GetEntryByName('RGB8')
    if not PySpin.IsAvailable(node_pixel_format_RGB8) or not PySpin.IsReadable(node_pixel_format_RGB8):
       print('Unable to set Pixel Format to RGB8 (entry retrieval). Aborting...')
    
    pixel_format_RGB8 = node_pixel_format_RGB8.GetValue()
    node_pixel_format.SetIntValue(pixel_format_RGB8)