Python EDSDK: загрузка изображения в системную памятьPython

Программы на Python
Anonymous
Python EDSDK: загрузка изображения в системную память

Сообщение Anonymous »

Я наткнулся на оболочку Python для библиотеки EDSDK. Он предоставил API с множеством различных функций, которые можно легко вызвать из моего собственного кода. Предоставленный файл примера работает без проблем, делая снимок и сохраняя его как файл в папке моего проекта.
Чтобы ускорить этот процесс вместо сохранения и загрузки изображения с диска, я хочу чтобы сохранить изображение в структуру данных, совместимую с Python. Есть функции, которые предположительно загружают изображение с камеры в буфер моей системы, и я могу продолжить оттуда.
К сожалению, все мои попытки заканчивались сбоем камеры или кода.< /p>
Вот часть моего кода:

Код: Выделить всё

edsdk.InitializeSDK()
cam_list = edsdk.GetCameraList()
cam = edsdk.GetChildAtIndex(cam_list, 0) # select first cam
edsdk.OpenSession(cam)

# set callback property on cam
edsdk.SetObjectEventHandler(cam, ObjectEvent.All, callback_object)

# save to host
edsdk.SetPropertyData(cam, PropID.SaveTo, 0, SaveTo.Host)

edsdk.SendCommand(cam, CameraCommand.TakePicture, 0)

# wait for process to finish
time.sleep(4)
if os.name == "nt":
pythoncom.PumpWaitingMessages()
edsdk.TerminateSDK()
С объектом обратного вызова

Код: Выделить всё

def callback_object(event: ObjectEvent, object_handle: EdsObject) -> int:

dir_item_info = edsdk.GetDirectoryItemInfo(object_handle)

# create new Stream
out = edsdk.CreateMemoryStream(dir_item_info["size"])

# download to stream
edsdk.Download(object_handle, dir_item_info["size"], out)
edsdk.DownloadComplete(object_handle)
Доступ к этому потоку из-за пределов объекта обратного вызова или определение нового потока приводил либо к сбою EDSDK, либо к тому, что моя камера не отвечала.
Есть ли такая возможность? способ реализовать эту идею, или мне просто придется согласиться на загрузку с диска?

Подробнее здесь: https://stackoverflow.com/questions/787 ... tem-memory

Вернуться в «Python»