Pymba Создать цветное изображение - PullRequest
0 голосов
/ 06 марта 2019

Я работаю с цветной камерой Allied Vision и пытаюсь получить цветные изображения. Я использую следующий код для создания изображения:

import pymba
import numpy
import cv2
import time
import os

Camera = None
Vimba = None
ID = "myID"

def GetCamera():
    '''
    Applies the Singleton pattern to create unique vimba and camera instances.
    Thus those are only once created.
    '''
    global ID
    global Camera
    global Vimba
    if Camera is None:
        # Create vimba instance
        Vimba = pymba.Vimba()
        # Startup vimba
        Vimba.startup()
        # Get system object
        System = Vimba.getSystem()
        # Discover cameras
        if System.GeVTLIsPresent:
            System.runFeatureCommand("GeVDiscoveryAllOnce")
            time.sleep(0.200)
        # Assign camera
        Camera = Vimba.getCamera(ID)
        # Open camera
        Camera.openCamera()
        # Set acquisition modes
        Camera.AcquisitionMode = "Continuous"
    return Camera


def Shutdown():
    '''
    tears down the component
    '''
    global Vimba
    if Vimba is not None:
        Vimba.shutdown()


def Snapshot():
    '''
    Uses the global camera object to generate a new image.
    '''
    Camera = GetCamera()
    # Start capture
    Camera.startCapture()
    # Assign frames
    Frames = [Camera.getFrame() for _ in range(1)]
    # Iterate each frame
    for Frame in Frames:
        # Announce frame
        Frame.announceFrame()
        # Queue frame capture
        Frame.queueFrameCapture()
    # Acquisition
    Camera.runFeatureCommand("AcquisitionStart")
    time.sleep(0.500)
    Camera.runFeatureCommand("AcquisitionStop")
    # Wait for frame buffer
    Frame.waitFrameCapture()
    # Convert image
    Image = numpy.ndarray(buffer=Frame.getBufferByteData(),
                          dtype=numpy.uint8,
                          shape=(Frame.height, Frame.width, 1)
                          )
    cv2.imshow("example", Image)
    cv2.waitKey(0)
    # Cleanup
    Camera.endCapture()
    Camera.revokeAllFrames()

Snapshot()

Это создает изображение в градациях серого, а установка формы (Frame.height, Frame.width, 3) приведет к ошибке (так как буфер слишком большой). Может кто-нибудь, пожалуйста, предоставьте мне пример кода для создания цветного изображения. Я не хочу конвертировать градации серого в rgb, используя opencv. Я хочу оригинальное изображение с камеры (на самом деле цветное)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...