Browse by label or search in the Vision Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
If your idea has not been submitted click New Idea to submit a product idea. Be sure to submit a separate post for each idea. Note: Please post technical vision support questions to the Machine Vision forum, not the Vision Idea Exchange.
Watch as the community gives your idea kudos and adds their input.
As Vision R&D considers the idea, they will change the idea status. Note: Vision R&D is committed to reviewing every idea posted in the Vision Idea Exchange. However, the implementation of any Vision Idea Exchange submission cannot be guaranteed.
Give kudos to other ideas that you would like to see implemented!
With the release of LV 2017 and therefore Vision 2017 I expected the 2GB limit to be gone.
Unfortunately and with great diappointment I have found out that this was not the case and it's still not possible to create or handle image files greater than 2GB even in LV 64bit 2017.
Latest linear image sensors can go up to 32.000 pixels (per line and per channel) and we currently use a 16K sensor in our camera and easily can exceed the 2GB limit when we scan long materials specially if 16bit precision is required and RGB color is also needed. This means that we had to implement several tricks in order to break down the image size (we process each RGB color layer as a separate image file and divide the image in several chunks) but we are still anyway experiencing many bottlenecks and are frustrated in the software development because we cannot use many of the exhisting Vision tools that are limited to 2GB. And of course VISION/IMAQ libraries cannot handle image processing when image information is distributed into different images and therefore we had to write our own libraries (even for image viewing) so as to handle the images properly.
Furthermore, despite the TIFF format is limited to 4GB (not 2 GB) it's relatively easy to split the image file into separate TIFF files while it's not easy to handle or process image data in separate chunks or channels. Furthermore there are also other image formats that allows for very large file sizes (i.e. BigTIFF which is extremely easy to implement as it's only a 64bit extension of the currently 32bit limit in the TIFF format).
So my suggestion is: to break the 2GB limit and finally allow handling very large image files directly into Labview and the Vision libraries !!!
More and more image sensors do support bit depths of more than 16Bit.
Just two examples: Aptina MT9M034, Omni Vision OV10640
Currently it is not possible to handle image from those sensors within LabVIEW except as a 2D-Array / Matrix.
Using the SGL image type would be possible on the first sight but it has several disadvantages: storing of those image is not possible and a lot of image processing and calculation function do not support SGL.
Add support for the image types U32, I32 and RGB128. Personally I see the priority at U32 and I32 because those types are needed to handle the RAW data from the sensors.
Very important: Do not just add those types to your typedef! There must be a real support from all basic functions!! Basic functions are in my opinion / for my usage: write to file, read from file, all functions in the palettes "Vision Utilites", "Processing", "Filters", "Operators" and the functions "Histogram", "Histograph", "Line Profile", "ROI Profile", "Linear Averages" and all other statics functions.
The zoom tool of the image display control is antiquated. Currently (Vision 2016), you select it and then click in the image to zoom by a fixed amount.
Consider upgrading its capabilities to match modern UIs:
- Selecting a rectangular ROI with the zoom tool should zoom to that ROI, i.e., the ROI should be expanded to fill the imag display control.
- support mouse wheel (and touch screen if needed) to act as a zoom in and out no matter which tool is selected.
- support fixed aspect ratio hot key (e.g. Ctrl key): zooming with the above ROI selection while the hot key is pressed will zoom the image to fill the display with the largest (or smallest) dimension of the ROI.
Functions* that insert overlay's into images can define a Group, so later you can e.g. delete the whole overlay group at once. Currently there is no VI that would be able to get a list af all Group names preset/used in the image (if you e.g. load an image saved with overlay's and you want to know the Group names, so you can access theyr properties). It could look like this:
Then it would be also easy to get properties if all of the overlay group's (with IMAQ Get Overlay Properties VI)... This VI could also return a array of integers, that would give information about how many Bytes each overlay group uses in memory - for debuging puposes, or if you have some memory shortage problems...
IMAQ Overlay Arc IMAQ Overlay Closed Contour IMAQ Overlay Line IMAQ Overlay Oval IMAQ Overlay Points IMAQ Overlay Rect IMAQ Overlay Text
In Vision Development Module, it seems new functions are being created to replace older versions from time to time. ie: IMAQ Set Calibration Axis Info.vi --> IMAQ Set Calibration Axis Info 2.vi. This is fine, however, the Vision Examples still use the older versions of these VIs, ie. they don't seem to have been updated also.
For instance: Using Vision Development Module 2014 SP1, example Simple Calibration.vi. In this example, the following VIs are being used: IMAQ Setup Match Pattern 2.vi, IMAQ Match Pattern 3.vi, IMAQ Set Calibration Axis Info.vi. However when you look at the LabVIEW functions pallette, the following VIs are available: IMAQ Learn Pattern 4.vi, IMAQ Match Pattern 4.vi, IMAQ Set Calibration Axis Info 2.vi.
This tends to confuse things. It would be great if the examples were also updated to use these new functions available
Also, the help files do not seem to differentiate between these older and newer functions.
Supporting only binary images as input type for the particle analysis is reducing the use cases where this functionality can be used. In many segemtation methods, e.g. superpixel segmentation or watershed segementation, the segmentation result is a labeled image. Being able to perform particle analysis on labeled images would enhance the modularity of this function. Since the particle analysis in internally performing probably a labeling anyway, and in many cases, the label of an object which is to be analysed is known too, it could also reduce the computational cost of this function.
The Image Display control (IMAQ Image.ctl) allows the user to change the color palette.
Like for the Intensity Chart and Graph objects in LabVIEW, it would be useful to add a color scale object to the control in order for the user to be able to visualize the color <-> value correspondance.
Like for the Intensity Chart and Graph objects in LabVIEW, the color scale should also allow the user to set the display range (min and max value) as well as the out of range color values.
there are some vi in vision toolkit that their controls have not any useful information in labview help for user so many ability of these vi are not discovered by LV user like me for example IMAQ Particle Filter have input control with name of selection value inside this cluster we have item with name of Measurement Parameter that have many mode to select but no detail information for them to know what kind of ability they have I think in next version of this toolkit it should be release with enough information about these controls of such vis
It would be nice if NI can provide Reset to default Values for settings in Vision assistant for many functions for e.g., Shape Detection etc. Currently either the developer should be getting default values from context help or delete the fuction and add it again.
Binned images are very useful for reducing processing time when you are looking at the entire image. It would be very useful to have a function that would perform binning on an image to generate a new image. The binning factor could be anywhere from 2x2 to 32x32 or even larger. I would be happy with powers of two, but any integer value would be even more useful. Different values for the X and Y binning would also be useful. The values could be simply added together and divided by a user specified divisor, much like the filter options. It would be similar to the existing IMAQ Block Statistics, but the output would be a new image ready for processing.
Right now, binning can be accomplished by multiple steps - filtering with the appropriate size filter, then using IMAQ Extract to reduce the size of the image. This is much slower and less efficient than a single binning function would be, since the filter must be applied to every pixel, instead of just the pixels you are keeping. It could be done in place on the original image if desired.
Using the image operators ADD or MAX or AVERAGE, even if both the images in the VI are calibrated, the output image is no longer calibrated.
To get around this, I have to separately copy the calibration to the output image. This is not possible from Vision Assistant (within VBAI) so I have to instead use a Run Labview VI step to re-calibrate the image. The same is also true for these VIs in Labview VDM, so I am posting this on both forums.
We have a critical need to apply a 4096 element U32 Lookup Table to our IMAQ images and were really hoping that it wouldn't be to hard to modify the existing shipped VI from the VDM package (IMAQ UserLookup 2 VI to be able to handle LUT's of greater bit depth.
This is of course a proprietary code from NI so we can't work directly from it. Has anyone one the community been able to write an (optimized) look up table VI/DLL which can take as input a 16 bit image and lookup to a 32-bit image depth?
Our application is correcting machine vision camera output frames for bit error and non-linearity corrections for which we need at least 22 bits of LUT so we decided to simply go to four byte pixel depths.
In Vision Assistant 2014 SP1, the "Create LabVIEW VI" function does not create a calibration file path in the generated code, for the Image Calibration function. Instead it reads in all of the calibration information and sets these to constants (or controls if selected it in the wizard) in the generated code. It would be good if this maintained a reference to the template.