Камера IDS Peak (ueye) подключена к USB3.
Справочная реализация Java пакета GenICam. В моем случае 2024.04 имеет привязки Java.
Я не могу найти способ получить изображение с камеры IDS Peak с помощью Java API GenTL.
C++ и C# API ссылаются на какое-то RemoteDevice, которое Я не вижу в Java API.
Я выполнил все шаги: от инициализации библиотеки
получения ссылки на устройство
открытия DataStream
но не могу пройти мимо этого
вот мой пример тестового кода
что мне вставить acquireImageFromCamera() иchangeGain() ??
Извините, если это выглядит глупо, но я здесь заблудился...
package detector.geicam;
import java.awt.image.BufferedImage;
import java.lang.foreign.Arena;
import java.lang.foreign.MemorySegment;
import java.nio.ByteBuffer;
import java.util.List;
import org.genicam.genapi.NodeMap;
import org.genicam.gentl.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MainGenicamTest {
private static final Logger l = LoggerFactory.getLogger(MainGenicamTest.class);
private GenTLProducer producer;
private TransportLayer transportLayer;
private List interfaces;
private TLInterface tlInterface;
private DeviceInfo deviceInfo;
private Device device;
private DataStream openDataStream;
private Port dataStreamPort;
private Port deviceRemotePort;
private Port deviceLocalPort;
public MainGenicamTest() {
System.loadLibrary("GenTLJava_MD_VC141_v3_4");
l.info("GenTLJava_MD_VC141_v3_4 loaded");
System.loadLibrary("GenApiJava_MD_VC141_v3_4");
l.info("GenApiJava_MD_VC141_v3_4 loaded");
producer = GenTLProducer.load("C:\\Work\\daich.biz\\biz.daich.stains.detector.geicam\\ids_ueyegentl.cti");
var r = producer.isOpen();
l.info("GenTLProducer isOpen: {}", r);
r = producer.checkValid();
l.info("GenTLProducer isValid: {}", r);
var name = producer.getDisplayname();
l.info("GenTLProducer name: {}", name);
String tlType = producer.getTLType();
l.info("GenTLProducer TLType: {}", tlType);
String version = producer.getVersion();
String model = producer.getModel();
String vendor = producer.getVendor();
l.info("GenTLProducer version: {}, model: {}, vendor: {}", version, model, vendor);
transportLayer = producer.openTransportLayer();
var res = transportLayer.updateInterfaceList(1000);
l.info("TransportLayer updateInterfaceList result: {}", res);
interfaces = transportLayer.getInterfaces();
l.info("TransportLayer interfaces: {}", interfaces.size());
for (InterfaceInfo interfaceInfo : interfaces) {
l.info("Interface: TransportLayerType: {}, display name: {}, id: {} ", interfaceInfo.getTransportLayerType(), interfaceInfo.getDisplayName(), interfaceInfo.getID());
TLInterface tlInterface = interfaceInfo.open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
List deviceList = tlInterface.getDeviceList();
deviceList.stream().forEach(x -> l.info("DeviceInfo: {}, display name: {}, id: {}", x.getTransportLayerType(), x.getDisplayName(), x.getID()));
tlInterface.close();
}
tlInterface = interfaces.get(0).open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
deviceInfo = tlInterface.getDeviceList().get(0);
l.info("DeviceInfo: TransportLayerType: {}, display name: {}, id: {}", deviceInfo.getTransportLayerType(), deviceInfo.getDisplayName(), deviceInfo.getID());
device = deviceInfo.open(DeviceAccessFlags.DEVICE_ACCESS_EXCLUSIVE);
l.info("Device opened: TransportLayerType: {}, display name: {}, id: {}", device.getTransportLayerType(), device.getDisplayName(), device.getID());
List dataStreamIDs = device.getDataStreamIDs();
dataStreamIDs.stream().forEach(x -> l.info("DataStream ID: {}", x));
String dataStreamId = dataStreamIDs.get(0);
openDataStream = device.openDataStream(dataStreamId);
if (openDataStream.definesPayloadSize()) {
long payloadSize = openDataStream.getPayloadSize();
l.info("DataStream payload size: {}", payloadSize);
} else {
l.info("DataStream does not define payload size");
}
dataStreamPort = openDataStream.getPort();
l.info("port properties: id={} name={} model={} TLType={} Vendor={}", dataStreamPort.getID(), dataStreamPort.getName(), dataStreamPort.getModel(), dataStreamPort.getTLType(), dataStreamPort.getVendor());
deviceRemotePort = device.getRemotePort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceRemotePort.getID(), deviceRemotePort.getName(), deviceRemotePort.getModel(), deviceRemotePort.getTLType(),
deviceRemotePort.getVendor());
deviceLocalPort = device.getLocalPort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceLocalPort.getID(), deviceLocalPort.getName(), deviceLocalPort.getModel(), deviceLocalPort.getTLType(),
deviceLocalPort.getVendor());
}
public BufferedImage acquireImageFromCamera() {
// HOW!???
throw new RuntimeException("Not implemented yet");
}
public void changeGain() {
// TODO: how to get reference to the GenApiNodeMap?
// how to do FindNode "TLParamsLocked" "AcquisitionStart" "AcquisitionStart" ???
}
public static void main(String[] args) {
MainGenicamTest x = new MainGenicamTest();
x.changeGain();
BufferedImage img = x.acquireImageFromCamera();
}
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... from-ids-p
Получение изображения с помощью Справочной реализации Java пакета GenICam из IDS Peak Camera в JAVA SE ⇐ JAVA
Программисты JAVA общаются здесь
1760965258
Anonymous
Камера IDS Peak (ueye) подключена к USB3.
Справочная реализация Java пакета GenICam. В моем случае 2024.04 имеет привязки Java.
Я не могу найти способ получить изображение с камеры IDS Peak с помощью Java API GenTL.
C++ и C# API ссылаются на какое-то RemoteDevice, которое Я не вижу в Java API.
Я выполнил все шаги: от инициализации библиотеки
получения ссылки на устройство
открытия DataStream
но не могу пройти мимо этого
вот мой пример тестового кода
что мне вставить acquireImageFromCamera() иchangeGain() ??
Извините, если это выглядит глупо, но я здесь заблудился...
package detector.geicam;
import java.awt.image.BufferedImage;
import java.lang.foreign.Arena;
import java.lang.foreign.MemorySegment;
import java.nio.ByteBuffer;
import java.util.List;
import org.genicam.genapi.NodeMap;
import org.genicam.gentl.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MainGenicamTest {
private static final Logger l = LoggerFactory.getLogger(MainGenicamTest.class);
private GenTLProducer producer;
private TransportLayer transportLayer;
private List interfaces;
private TLInterface tlInterface;
private DeviceInfo deviceInfo;
private Device device;
private DataStream openDataStream;
private Port dataStreamPort;
private Port deviceRemotePort;
private Port deviceLocalPort;
public MainGenicamTest() {
System.loadLibrary("GenTLJava_MD_VC141_v3_4");
l.info("GenTLJava_MD_VC141_v3_4 loaded");
System.loadLibrary("GenApiJava_MD_VC141_v3_4");
l.info("GenApiJava_MD_VC141_v3_4 loaded");
producer = GenTLProducer.load("C:\\Work\\daich.biz\\biz.daich.stains.detector.geicam\\ids_ueyegentl.cti");
var r = producer.isOpen();
l.info("GenTLProducer isOpen: {}", r);
r = producer.checkValid();
l.info("GenTLProducer isValid: {}", r);
var name = producer.getDisplayname();
l.info("GenTLProducer name: {}", name);
String tlType = producer.getTLType();
l.info("GenTLProducer TLType: {}", tlType);
String version = producer.getVersion();
String model = producer.getModel();
String vendor = producer.getVendor();
l.info("GenTLProducer version: {}, model: {}, vendor: {}", version, model, vendor);
transportLayer = producer.openTransportLayer();
var res = transportLayer.updateInterfaceList(1000);
l.info("TransportLayer updateInterfaceList result: {}", res);
interfaces = transportLayer.getInterfaces();
l.info("TransportLayer interfaces: {}", interfaces.size());
for (InterfaceInfo interfaceInfo : interfaces) {
l.info("Interface: TransportLayerType: {}, display name: {}, id: {} ", interfaceInfo.getTransportLayerType(), interfaceInfo.getDisplayName(), interfaceInfo.getID());
TLInterface tlInterface = interfaceInfo.open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
List deviceList = tlInterface.getDeviceList();
deviceList.stream().forEach(x -> l.info("DeviceInfo: {}, display name: {}, id: {}", x.getTransportLayerType(), x.getDisplayName(), x.getID()));
tlInterface.close();
}
tlInterface = interfaces.get(0).open();
boolean updateDeviceList = tlInterface.updateDeviceList(1000);
l.info("TLInterface updateDeviceList result: {}", updateDeviceList);
deviceInfo = tlInterface.getDeviceList().get(0);
l.info("DeviceInfo: TransportLayerType: {}, display name: {}, id: {}", deviceInfo.getTransportLayerType(), deviceInfo.getDisplayName(), deviceInfo.getID());
device = deviceInfo.open(DeviceAccessFlags.DEVICE_ACCESS_EXCLUSIVE);
l.info("Device opened: TransportLayerType: {}, display name: {}, id: {}", device.getTransportLayerType(), device.getDisplayName(), device.getID());
List dataStreamIDs = device.getDataStreamIDs();
dataStreamIDs.stream().forEach(x -> l.info("DataStream ID: {}", x));
String dataStreamId = dataStreamIDs.get(0);
openDataStream = device.openDataStream(dataStreamId);
if (openDataStream.definesPayloadSize()) {
long payloadSize = openDataStream.getPayloadSize();
l.info("DataStream payload size: {}", payloadSize);
} else {
l.info("DataStream does not define payload size");
}
dataStreamPort = openDataStream.getPort();
l.info("port properties: id={} name={} model={} TLType={} Vendor={}", dataStreamPort.getID(), dataStreamPort.getName(), dataStreamPort.getModel(), dataStreamPort.getTLType(), dataStreamPort.getVendor());
deviceRemotePort = device.getRemotePort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceRemotePort.getID(), deviceRemotePort.getName(), deviceRemotePort.getModel(), deviceRemotePort.getTLType(),
deviceRemotePort.getVendor());
deviceLocalPort = device.getLocalPort();
l.info("Remote port properties: id={} name={} model={} TLType={} Vendor={}", deviceLocalPort.getID(), deviceLocalPort.getName(), deviceLocalPort.getModel(), deviceLocalPort.getTLType(),
deviceLocalPort.getVendor());
}
public BufferedImage acquireImageFromCamera() {
// HOW!???
throw new RuntimeException("Not implemented yet");
}
public void changeGain() {
// TODO: how to get reference to the GenApiNodeMap?
// how to do FindNode "TLParamsLocked" "AcquisitionStart" "AcquisitionStart" ???
}
public static void main(String[] args) {
MainGenicamTest x = new MainGenicamTest();
x.changeGain();
BufferedImage img = x.acquireImageFromCamera();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79700701/acquiring-an-image-with-genicam-package-java-reference-implementation-from-ids-p[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия