Приобретение изображения с Genicam Package Package Java Справочная реализация от Peak Camera в Java SEJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Приобретение изображения с Genicam Package Package Java Справочная реализация от Peak Camera в Java SE

Сообщение Anonymous »

I got IDS Peak (ueye) Camera connected to USB3
GenICam Package Java Reference Implementation in my case 2024.04 has Java bindings.
I can not find a way to acquire an image from the IDS Peak camera using GenTL java API
C++ and C# API reference some RemoteDevice that Я не вижу в Java API. < /P>
Я сделал все шаги от инициализации библиотеки < /p>
Получение ссылки на устройство < /p>
Открытие DataStream < /p>
, но я не могу получить проход, который < /p>
ЗДЕСЬ. Приобретенность offromcamera () и 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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