Чтобы ускорить этот процесс вместо сохранения и загрузки изображения с диска, я хочу чтобы сохранить изображение в структуру данных, совместимую с 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)
Есть ли такая возможность? способ реализовать эту идею, или мне просто придется согласиться на загрузку с диска?
Подробнее здесь: https://stackoverflow.com/questions/787 ... tem-memory