LabVIEW, C ++ DLL и изображения IMAQ - PullRequest
5 голосов
/ 16 февраля 2012

Я знаком с написанием библиотек DLL, которые можно вызывать из LabVIEW, но мне любопытно, каким может быть правильный способ передачи изображений IMAQ в DLL.Вот один способ, который я нашел, чтобы сделать это - я также использую аналогичный механизм для отправки экземпляров IMAQ-изображений из моей DLL в структуру событий.

Example Diagram

Обратите внимание, что узлыкоторые преобразуют экземпляры изображения в / из кластеров, расположены в ${LABVIEW_INSTALL_DIR}/vi.lib/vision/DatatypeConversion.llb и имеют имена IMAQ Image Datatype to Image Cluster.vi и IMAQ Image Cluster to Image Datatype.vi соответственно.Созданный кластер состоит из имени изображения и целочисленного значения, которое представляет адрес указателя на тип Image* в C / C ++.

Это лучший способ сделать это или есть лучшийспособ

1 Ответ

4 голосов
/ 16 февраля 2012

Я использую другой подход, помещая всю информацию об изображении (указатель, размеры и т. Д.) В кластер, используя следующий код:

enter image description here

Затем кластер передается вфункция DLL, выполняющая операции над пикселями (конечно, без изменения размера) и последующий вызов пиксельного указателя IMAQ unmap.


РЕДАКТИРОВАТЬ после обсуждения:

Ваше решение основано на использовании NIВидение, и в этом случае оно лучше моего.Однако, когда у меня нет NI Vision mine, это единственный способ работать с пиксельными данными IMAQ.

...