Machine Vision

Showing results for 
Search instead for 
Did you mean: 

Vision Builder third-party C++ integration?

Go to solution

A customer of ours is using NI Vision Builder in an application and asked about the feasibility of integrating our proprietary image processing algorithms with it.  Our code is in a C/C++ library.

I've done some reading and downloaded the eval package, but it isn't clear to me if this is allowed with the product.  The defined C APIs allow access to the built-in functions but I didn't see an obvious way for third-party algorithms to access images or add novel functionality.

Does Vision Builder only support the built-in algorithms or can developers add custom image processing (in C/C++) algorithms to the product?  Thanks.

0 Kudos
Message 1 of 4
Accepted by topic author eepdx

Hi eepdx,


VBAI does not has a utility to directly incorporate third party code into the script. And you are right about the C API.


You could use the communications pallete in Vision Builder AI to communicate with the C++ application. Or you could translate your final VBAI script into LabVIEW code, then, LabVIEW can call dlls, so you could create a dll of the C++ app and call it from the LabVIEW code (this would be more complex).


I hope this helps.

Daniel C.

0 Kudos
Message 2 of 4

Thanks for the pointers.  After some more study, it does look like the better way to proceed would be to build a DLL that is callable by LabView, then interwork those functions with LabView's features.


I'm very new to these products.  I gather that the Vision Development Module is for use with LabView directly, but is Vision Builder a separate product focused only on image applications?  It seems to be standalone, but isn't well explained.  I've installed the evaluation version and it hangs during launch for some reason.

0 Kudos
Message 3 of 4

Sorry for the late reply. Yes, Vision Builder is a machine vision configuration software, an executable that let you easily configure a Vision inspection.

Vision bulider has a feature that allows you to call a LabVIEW VI, and LabVIEW itself can call dlls. So you can call your C/C++ code that way and still benefit from the configuration interface.


For a better integration, we also provide a Vision Builder AI SDK, that allows you to create your own native Vision Builder AI step. You program it in LabVIEW, but again, you can call DLLs. The SDK allows you to create your own UI in Vision Builder AI.


Vision Builder AI also has a C API that can be used to instrument the software from a C application. You can retrieve the image in your C application and do further processing in C. If you use it this way, you will have to run the Vision Builder AI inspection first, then apply your processing. In other words, you won't be able to "interlace" your processing with Vision Builder AI native functionality.


Hope that gives you an idea of the possibilities to extend the functionalities of Vision Builder AI.

Message 4 of 4