A client’s research department had a special request: design a custom application that could connect to a multitude of different cameras and run a variety of user-selected processing and grading algorithms. Most vision applications are constrained, converging upon a single fault detection under very specific conditions.
Specification
The vision experts at DMC assisted the client with selecting camera type, resolution, optics, and lighting for that precise application. For this project, client scientists would be constructing new tests and experimenting with a variety of settings on many different material types. They needed a custom piece of software that was as flexible as their test arrangement.
DMC listened to client staff and distilled their use cases and requests into a realistic strategy. We proposed to support any industrial camera that adhered to the GenICam XML standards. This would allow NI Vision to interface with a variety of different camera makes and models. Leveraging the client’s programming skills and LabVIEW’s approachable nature, we were able to design a Processing and Grading VI template.
This ultra-flexible setup would allow LabVIEW-savvy client staff to create VI IMAQ content inside individual subVIs. These user-created VIs, as long as the terminals remained consistent, could be called and run by the built executable.
Outcome
The final application consisted of two primary parts: the Configuration screen and the Main Test screen. The client would attach a Camera, and LabVIEW would find and list the new device, along with all currently loaded settings. An extensive Attributes list displayed all editable settings exposed to the user. Double-clicking on any Attribute would launch a configuration window, displaying valid settings and a description to help the user properly edit values.
Once settings were established correctly, the client could save the attributes to disk. A camera could easily be reconfigured for a new test by loading a different configuration file from disk. Acquisition settings, such as frame rate and exposure time, could also be configured. SubVIs, created earlier by client staff, containing different image processing algorithms, are listed under a dropdown by name. The user can select a Processing and Grading subVI to run on each image.
Once a camera is configured and set up to acquire, the user switches over to the Main Screen, where they can start the acquisition. Each image produced by the camera is passed through the Processing and Grading subVIs, with live results displayed on the screen for convenient viewing. The program could also be configured to automatically save all or only ‘failed’ images to disk at a given compression ratio.
As always, DMC transferred the entire LabVIEW codebase over to the client staff. The bundle included example Processing and Grading VIs along with other DMC libraries for easy extension and modification.
Learn more about DMC’s LabVIEW programming services and contact us for your next project.