«ValueError: инициализатор должен быть прямоугольной вложенной последовательностью» при попытке передать список изображений Python в функцию Matlab? - PullRequest
0 голосов
/ 26 октября 2018

Я использую оболочку Python, PyPylon , для управления камерой Basler, чтобы я мог получать изображения, которые затем буду обрабатывать с использованием функции MATLAB.

Pythonscript :

import pypylon
import matlab.engine

# Camera
available_cameras = pypylon.factory.find_devices()
cam = pypylon.factory.create_device(available_cameras[0])
cam.open()

cam.properties['GainAuto']
cam.properties['CenterX']=True
cam.properties['CenterY']=True
cam.properties['Width'] = 1600
cam.properties['Height']= 1600
cam.properties['ExposureTime'] = 30000
cam.properties['AcquisitionFrameRateEnable'] = True
cam.properties['AcquisitionFrameRate'] = 30

while True:
    try:
        N = int(input('Number of images to capture: '))
        break
    except ValueError:
        print('Invalid input.')

eng = matlab.engine.start_matlab()

imageList = matlab.uint8(list(cam.grab_images(N)))
im1 = imageList[0]
im2 = imageList[1]

F = eng.FUJI(im1, im2) # Image processing Matlab function
eng.imshow(F)

cam.close()

Функция Matlab:

function result = FUJI(image1, image2)

top = abs(image1 - image2);
bottom = image1 + image2;
result = top./bottom;

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

Кроме того, если у кого-нибудь есть какие-либо советы о том, как сделать весь этот процесс более простым, это было бы весьма полезно!Соединение Python и MATLAB кажется довольно сложной задачей!

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