Jump to content

Machine Vision & Imaging

6 files

  1. Convert string to bitmap.vi

    This vi simply transform a bitmap string to LabVIEW image.
    I used basic LabVIEW function that already exist in read BMP file.



  2. LVVideo4Linux

    Mostly for fun, I have concocted a way of acquiring video using Labview for Linux, to mend for the unavailability of IMAQdx on Linux.

    The idea is to grab via v4l2 (http://linuxtv.org/), actually through the handler libv4l2, and to display simply via the picture control. The package includes wrapper VIs to the public functions of libv4l2.so, high level, grabbing oriented VIs, convenient ancillaries and v42l typedefs.
    A proof of the concept webcam grabber, essentially a translation of the Appendix E example to the linuxtv API, is also included, as well as the trace of the process used for automatically building the typedefs employed.
    During the development, this was tested successfully with webcams at different resolutions on versions of LV from 2011 to 2015, on different installations of Ubuntu 64bits, from 12.04 to 14.04. This means, using v4l-utils from originally 0.8.6-1ubuntu2, 32bit, till 1.0.1-1, 32 and 64bit. The files are currently saved for Labview 2014 32bit, and can be run by Labview 64bit if a preliminary script, regenerating some of the typedefs, is run (details in the README).
    For the bleeding edge of this library, see https://gitlab.com/enricosegre/LVVideo4Linux



  3. LVOOP ImageMagick Interface

    Copyright © 2007, Justin Goeres Engineering
    All rights reserved.
    Justin J. Goeres
    --see readme file for contact information
    This library provides an LVOOP-based interface to the powerful cross-platform ImageMagick image handling utility suite.
    It supports all of the ImageMagick utilities and almost every command-line operator (over 200 of them) with support for custom user-specfied operators for the edge cases.
    Several examples are included that demonstrate basic text & image creation, composition, and conversion in and out of LabVIEW (including VI icon creation).
    The first thing you need to know about ImageMagick is that it has a pretty steep learning curve. Complicated things are complicated, and easy things are sometimes complicated, too. The Example VIs provided with the project are intended to give you a basic start on how to use the library, but you should expect to consult an ImageMagick Examples Page frequently.
    The library is written for cross-platform usage, but is currently limited to compatibility with Windows because I don't have any non-Windows LabVIEW machines to write the platform-specific code on. If you can help out with compatibility for other platforms, please contact me. I would LOVE to hear from you.
    A working Windows ImageMagick installation. Tested with ImageMagick v6.3.4-Q16. Almost certainly works with later versions, and probably with earlier versions back to at least v5.4.8. (Personal testimonials on this are welcome.)
    REQUIRED minimum OpenG Packages:
    RECOMMENDED OpenG Packages: (used in examples, but not in the core functions)
    Currently applications built against this library throw a litany of execution errors when run in the RTE. If you need to build these libraries into an application, please contact me and I will try to help you.
    Functions for a few of the built-in pattern generators are not completely implemented. You can access them using a custom raw operator argument.
    1.0.1: Fixed an incompatibility with ImageMagick 6.3.4 when using certain operators.
    Added a better error message when ImageMagick can't be located under Windows.
    1.0.0: Initial release (06/18/2007)



  4. BitMan (Bitmap Manipulation Library)

    Copyright © 2009, Wojciech Golebiowski (vugie)
    All rights reserved.
    Author: Wojciech Golebiowski (w_golebiowski (at) tlen.pl)
    Name: BitMan (Bitmap Manipulation Library)
    Type: framework, library
    LabVIEW version: 8.2.1
    Bitman library is designed for image processing based on a specially-defined structure to store the image, and a system of filters. It is not only a set of tools performing specific operations on images, but also a framework to help create your own image processing functions with a mechanism called "dynamic filters".
    Library contains few basic built-in filters. Their design concentrates on the versatility, ease of use, and the clearance of the code. This results in a decrease of efficiency and consequently, processing of large images using standard filters may be slow. But this is not a limitation of the framework and it is possible to create user filters, which may - as a more specialized - operate much more efficiently. Built-in filters are good for processing of relatively small images and can be used to support programming user interfaces, operations on the icons, creating graphical documents, etc.
    Library was written using object-oriented programming techniques (LVOOP).
    Libraries can be used after unpacking it anywhere on disk. Access to all of the features is possible then by opening the library file "BitMan Lib.lvlib". However, it is most convenient to copy entire BitMan directory to the directory \user.lib. After the restart of LabVIEW on a pallet, in the User Libraries, sub-palette "BitMan" will appear.
    A description of all VIs from palette is available in the file "docs\BitMan docs.html". Descriptions are also included (for all functions) in the Documentation section of the VI Properties dialog, as well as for more important front panel controls and, as such, are available through the LabVIEW context help.
    Examples of applications can be found in the directory "examples" (examples of the use of the library itself) and the directory "examples\Dynamic Filters" (examples of the creation of filters). Examples along with descriptions in the diagrams are an integral part of the documentation.
    The most important class it the Bitmap class. It contains structure for storing an image (the description of the structure may be found in documentation under Bitmap type.ctl) and the basic access methods. The main assumption of this structure is to store the image in three-dimensional U8 array, where subsequent dimensions mean respectively height (y coordinate), width (x) and subsequent color channel. Number of channels in the image depends on the bit depth, additionally you can define any number of user channels. It is possible to store pictures 1 -, 4 -, 8 -, 24 - and 32-bit, while the 32-bit means here CMYK color model, rather than - as is sometimes used - RGB images with transparency . Transparency (the so-called alpha channel) is stored in a separate field of the structure. Support for CMYK images is not fully implemented yet.
    The processing of images is done by the use of system of filters implemented in General Filter class. This class stores a reference to strictly typed VI processing an image and its runtime parameters. The filter is launched with Filter Run method, which uses the dynamic call mechanism. Filter runtime parameters are stored in the object as a variant variable for unified method for passing them.
    Users can create their own filters in two ways: by using methods of Dynamic Filter class and filter template or by creating a new class inheriting from General Filter class. It is also possible to create a function-specific interfaces for the use of filters as the normal LV function. Inheriting and transparent interface is the way buit-in filters work, so they are also a specific example of use of the library.
    Template to create your own filters may be found in "typedefs".
    Using of dynamic filters is supported Library Filter class designed for managing filters. It makes use of the functional global mechanism for storing and providing access to pre-loaded filters with assigned names. It can call the filters by using short names anywhere in the code, without a burdensome wiring of filter objects.
    Another supporting class is Bitmap With Filters class, inheriting from the Bitmap class and extending its functionality with a possibility of using a sequence of filters.
    More detailed descriptions of individual functions and applications can be found in the above mentioned documentation and examples.
    Version History:
    Initial release of the code.
    Packaged version with small bugfix



  5. USB Continuous Acquire

    Copyright © 2007, Karissa Purcell
    All rights reserved.
    Karissa Purcell
    --see readme file for contact information
    This VI uses the NI-IMAQ for USB drivers to continously acquire an IMAQ image.
    The USB camera is selected from a list generated from the "IMAQ USB enumerate cameras" vi.
    Grab rate is controlled using an event structure. This is so that image processing routines can use other event cases.
    *Tested with a Logitech QuickCam IM
    Labview 8.0.x or higher
    IMAQ drivers
    NI-IMAQ for USB drivers (http://web.archive.org/web/20071124171708/http://sine.ni.com/devzone/cda/epd/p/id/5030)
    Change Log:
    1.0.2: Changed error cluster wiring
    1.0.1: Fixed list control to select camera, improved error control.
    1.0.0: Initial release of the code.



  6. ImageMagick Batch Image Converter VI

    Copyright © 2006, Justin Goeres Engineering
    All rights reserved.
    Justin Goeres
    --see readme file for contact information
    This VI provides a simple batch image conversion interface to the ImageMagick 'convert' utility. It converts and resizes groups of images specified by the user (it was originally developed for organizing documentation screenshots).
    Be warned that this is a pretty simple VI. It has basic error reporting & handling. It should serve as a starting point for people who want to explore the usage of ImageMagick with LabVIEW.
    This VI is Windows-only (the registry lookup and calling syntax are OS-specific), but it would not be difficult to adapt to other OSes.
    A working Windows ImageMagick installation.
    Change Log:
    1.0.1: bugfix (12/11/2006)
    - Removed SCC .svn folders
    1.0.0: Initial release (11/27/2006)



  • Create New...

Important Information

By using this site, you agree to our Terms of Use.