Ошибка при попытке подключить камеру JAI AD_132GE#1 к Python с использованием библиотеки Harvester. ⇐ Python
-
Гость
Ошибка при попытке подключить камеру JAI AD_132GE#1 к Python с использованием библиотеки Harvester.
Я начинаю использовать IP-камеры, и мне нужно захватить изображение, в частности, с камеры JAI AD-132GE, используя Python. Я начинаю с использования библиотеки Harvester, которая, очевидно, позволит мне установить это соединение, однако я не удалось получить изображения.
Я использовал инструмент, предоставленный JAI, JAI Camera Control Tool, и с его помощью я могу выполнить получение изображения:
Однако, когда я пытаюсь связать его в Python, я получаю сообщение об ошибке, вот код:
импортировать cv2 импортировать numpy как np импортировать matplotlib.pyplot как plt от Harvesters.core импорт Харвестер # создаем объект комбайна h = Харвестер() h.add_cti_file("c:/Program Files/JAI/SDK/bin/JaiGevTL.cti") h.update_device_info_list() h.device_info_list[0] # создаем приобретатель изображений ia = h.create_image_acquirer(0) ширина = 2560 высота = 1960 ia.device.node_map.Width.value, ia.device.node_map.Height.value = ширина, высота ia.device.node_map.PixelFormat.value = 'Mono8' # создать видеомонтажера fourcc = cv2.VideoWriter_fourcc(*'XVID') кадр/с = 25,0 out = cv2.VideoWriter('output.avi',fourcc, fps, (ширина,высота)) # начальное изображение aq ia.start_image_acquisition() в то время как (Правда): с ia.fetch_buffer() в качестве буфера: # Создадим псевдоним компонента 2D-изображения: компонент = буфер.полезная нагрузка.компоненты[0] # # Давайте посмотрим полученные данные в 1D: # _1d = компонент.данные # Преобразуем массив NumPy в 2D-массив: рамка = компонент.данные.reshape(компонент.высота, компонент.ширина) # выполняем любую операцию с изображением # конвертируем в BGR для сохранения видео рамка = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR) # сохранить кадры out.write(кадр) # сохранить снимок # cv2.imwrite('snap.jpg', рамка) # показать живое приобретение cv2.imshow('фрейм',фрейм) # выходим из live aq с помощью клавиши "q" если cv2.waitKey(1) & 0xFF == ord('q'): перерыв out.release() cv2.destroyAllWindows() ia.stop_image_acquisition() ia.destroy() h.reset()` Вот какая ошибка выдается при запуске программы:
PS C:\Users\bchns\OneDrive\Escritorio\TRABAJOS Y TAREAS\9 SEMESTRE\TALLER DE INVESTIGACIÓN\AUTOMATIZACION> & C:/Users/bchns/AppData/Local/Programs/Python/Python37/python .exe "c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESIGACIÓN/AUTOMATIZACION/test.py" c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py:8: УстареваниеПредупреждение: рассмотрите возможность использования add_file() вместо add_cti_file(). h.add_cti_file("c:/Program Files/JAI/SDK/bin/JaiGevTL.cti") c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py: 9: Предупреждение об устаревании: рассмотрите возможность использования update() вместо update_device_info_list(). h.update_device_info_list() Производитель GenTL не реализует IFGetParentTL Производитель GenTL не реализует DevGetParentIF Производитель GenTL не реализует DSGetParentDev Производитель GenTL не реализует DSGetNumBufferParts Производитель GenTL не реализует DSGetBufferPartInfo c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/ 9 СЕМЕСТР/БОЛЬШОЙ СЕМЕНТ ИССЛЕДОВАНИЙ/АВТОМАТИЗАЦИЯ/test.py:13: УстареваниеВнимание: рассмотрите возможность использования create() вместо create_image_acquirer(). ia = h.create_image_acquirer(0) Traceback (последний последний вызов): Файл "c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py", строка 13, в ia = h.create_image_acquirer(0) Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 3213, в create_image_acquirer file_dict =file_dict) Файл «C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py», строка 3113, в _create_acquirer file_dict=file_dict, родитель=self) Файл " C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 1634, в __init__ xml_dir_to_store=self._xml_dir) Файл "C:\Users\bchns\ AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 489, в __init__ xml_dir_to_store=xml_dir_to_store) файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37" \lib\site-packages\harvesters\core.py", строка 284, в порту __init__ else Нет Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core .py", строка 355, в файле _create_node_map node_map.connect(concrete_port, port.name) "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\genicam\genapi.py" , строка 1950, в Connect return self._connect(*args) Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\genicam\genapi.py", строка 1860, в _connect return _genapi.NodeMap__connect(self, *args) _genapi.AccessException: функция отсутствует (ссылка недействительна): выдано исключение AccessException (файл «NodeMapRef.h», строка 497)
Я был бы признателен, если бы кто-нибудь имел представление о том, в чем может быть ошибка, и мог бы рассказать мне об этом, приветствую.
Я начинаю использовать IP-камеры, и мне нужно захватить изображение, в частности, с камеры JAI AD-132GE, используя Python. Я начинаю с использования библиотеки Harvester, которая, очевидно, позволит мне установить это соединение, однако я не удалось получить изображения.
Я использовал инструмент, предоставленный JAI, JAI Camera Control Tool, и с его помощью я могу выполнить получение изображения:
Однако, когда я пытаюсь связать его в Python, я получаю сообщение об ошибке, вот код:
импортировать cv2 импортировать numpy как np импортировать matplotlib.pyplot как plt от Harvesters.core импорт Харвестер # создаем объект комбайна h = Харвестер() h.add_cti_file("c:/Program Files/JAI/SDK/bin/JaiGevTL.cti") h.update_device_info_list() h.device_info_list[0] # создаем приобретатель изображений ia = h.create_image_acquirer(0) ширина = 2560 высота = 1960 ia.device.node_map.Width.value, ia.device.node_map.Height.value = ширина, высота ia.device.node_map.PixelFormat.value = 'Mono8' # создать видеомонтажера fourcc = cv2.VideoWriter_fourcc(*'XVID') кадр/с = 25,0 out = cv2.VideoWriter('output.avi',fourcc, fps, (ширина,высота)) # начальное изображение aq ia.start_image_acquisition() в то время как (Правда): с ia.fetch_buffer() в качестве буфера: # Создадим псевдоним компонента 2D-изображения: компонент = буфер.полезная нагрузка.компоненты[0] # # Давайте посмотрим полученные данные в 1D: # _1d = компонент.данные # Преобразуем массив NumPy в 2D-массив: рамка = компонент.данные.reshape(компонент.высота, компонент.ширина) # выполняем любую операцию с изображением # конвертируем в BGR для сохранения видео рамка = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR) # сохранить кадры out.write(кадр) # сохранить снимок # cv2.imwrite('snap.jpg', рамка) # показать живое приобретение cv2.imshow('фрейм',фрейм) # выходим из live aq с помощью клавиши "q" если cv2.waitKey(1) & 0xFF == ord('q'): перерыв out.release() cv2.destroyAllWindows() ia.stop_image_acquisition() ia.destroy() h.reset()` Вот какая ошибка выдается при запуске программы:
PS C:\Users\bchns\OneDrive\Escritorio\TRABAJOS Y TAREAS\9 SEMESTRE\TALLER DE INVESTIGACIÓN\AUTOMATIZACION> & C:/Users/bchns/AppData/Local/Programs/Python/Python37/python .exe "c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESIGACIÓN/AUTOMATIZACION/test.py" c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py:8: УстареваниеПредупреждение: рассмотрите возможность использования add_file() вместо add_cti_file(). h.add_cti_file("c:/Program Files/JAI/SDK/bin/JaiGevTL.cti") c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py: 9: Предупреждение об устаревании: рассмотрите возможность использования update() вместо update_device_info_list(). h.update_device_info_list() Производитель GenTL не реализует IFGetParentTL Производитель GenTL не реализует DevGetParentIF Производитель GenTL не реализует DSGetParentDev Производитель GenTL не реализует DSGetNumBufferParts Производитель GenTL не реализует DSGetBufferPartInfo c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/ 9 СЕМЕСТР/БОЛЬШОЙ СЕМЕНТ ИССЛЕДОВАНИЙ/АВТОМАТИЗАЦИЯ/test.py:13: УстареваниеВнимание: рассмотрите возможность использования create() вместо create_image_acquirer(). ia = h.create_image_acquirer(0) Traceback (последний последний вызов): Файл "c:/Users/bchns/OneDrive/Escritorio/TRABAJOS Y TAREAS/9 SEMESTRE/TALLER DE INVESTIGACIÓN/AUTOMATIZACION/test.py", строка 13, в ia = h.create_image_acquirer(0) Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 3213, в create_image_acquirer file_dict =file_dict) Файл «C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py», строка 3113, в _create_acquirer file_dict=file_dict, родитель=self) Файл " C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 1634, в __init__ xml_dir_to_store=self._xml_dir) Файл "C:\Users\bchns\ AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core.py", строка 489, в __init__ xml_dir_to_store=xml_dir_to_store) файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37" \lib\site-packages\harvesters\core.py", строка 284, в порту __init__ else Нет Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\harvesters\core .py", строка 355, в файле _create_node_map node_map.connect(concrete_port, port.name) "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\genicam\genapi.py" , строка 1950, в Connect return self._connect(*args) Файл "C:\Users\bchns\AppData\Local\Programs\Python\Python37\lib\site-packages\genicam\genapi.py", строка 1860, в _connect return _genapi.NodeMap__connect(self, *args) _genapi.AccessException: функция отсутствует (ссылка недействительна): выдано исключение AccessException (файл «NodeMapRef.h», строка 497)
Я был бы признателен, если бы кто-нибудь имел представление о том, в чем может быть ошибка, и мог бы рассказать мне об этом, приветствую.
Мобильная версия