Jump to content

What are the most useful vision functions?


Recommended Posts

Hi,

Right now I am working on a project to create an open Vision-like library for LabVIEW based on Intel OpenCV. At the moment, we don't have enough time and people to wrap all the OpenCV functions, so we could really use some statistics on which functions are essential and which of them could be left for the future. Please, express your opinion here.

Thanks in advance

  • Like 1
Link to comment

Hi,

Right now I am working on a project to create an open Vision-like library for LabVIEW based on Intel OpenCV. At the moment, we don't have enough time and people to wrap all the OpenCV functions, so we could really use some statistics on which functions are essential and which of them could be left for the future. Please, express your opinion here.

Thanks in advance

Wow, that could be quite an undertaking. I wish you luck.

Anyway, the NI-VISION functions used depends a lot on the application. Here's a list of the NI-VISION VIs I've used on some recent project.

IMAQ Absolute Difference

IMAQ AVI Get Filter Names

IMAQ Add

IMAQ ArrayToImage

IMAQ ArrayToColorImage

IMAQ CannyEdgeDetection

IMAQ Cast Image

IMAQ Clear Overlay

IMAQ Compare

IMAQ Copy

IMAQ Divide

IMAQ Equalize

IMAQ Expand

IMAQ Extract

IMAQ FillImage

IMAQ Find Circular Edge

IMAQ Histogram

IMAQ Histograph

IMAQ ImageToClipboard

IMAQ ImageToImage

IMAQ ImageToImage 2

IMAQ Mask

IMAQ Multiply

IMAQ Overlay Bitmap

IMAQ Overlay ROI

IMAQ Overlay Text

IMAQ Quantify

IMAQ Resample

IMAQ ROIProfile

IMAQ Rotate

IMAQ Shift

IMAQ Subtract

IMAQ Symmetry

Bruce

Link to comment

Besides, strangely enough, they grant much less functionality than IMAQ or OpenCV.

Well as you go on with this project you will soon find that it takes A LOT of time and effort to write such a thing, and therefore it is likely that your Open Source library is only ever going to support a fraction of the functionality of IVision and you will understand why they didn't make the entire OpenCV API fully accessible in LabVIEW. IVision as it is, is a really large task in itself to accomplish already and contains quite a bit of work to make the OpenCV API work with good performance from LabVIEW. Sure you could go and simply create LabVIEW wrapper VIs for the OpenCV functions directly without any intermediate DLL but you will soon find out that the VIs created in such a way are kind of hard to develop and maintain and the performance of such a solution is likely going to suffer.

The LabVIEW ecoverse is kind of small, and while Open Source can and does work in some areas image acquisition is probably not the most likely one. It requires quite a bit of domain knowledge, a very good programming knowledge and a large amount of time to maintain, and all that for a very small user base. Small because the professionals will use IMAQ Vision anyhow, since it is backed up by NI support, semi professional might go for IVision because of the cost, and the poor students will take whatever is there if they can get it for free, but only really do the minimalistic stuff of accessing a webcam and storing an image to disk, with an occasional simple image analysis function if they even have the time and guts to dive into the theory of how to use that.

  • Like 1
Link to comment

Well as you go on with this project you will soon find that it takes A LOT of time and effort to write such a thing, and therefore it is likely that your Open Source library is only ever going to support a fraction of the functionality of IVision and you will understand why they didn't make the entire OpenCV API fully accessible in LabVIEW. IVision as it is, is a really large task in itself to accomplish already and contains quite a bit of work to make the OpenCV API work with good performance from LabVIEW. Sure you could go and simply create LabVIEW wrapper VIs for the OpenCV functions directly without any intermediate DLL but you will soon find out that the VIs created in such a way are kind of hard to develop and maintain and the performance of such a solution is likely going to suffer.

1. I have heard, tests show, IMAQ-functions have the perfomance problems comparing to OpenCV (from 1.5 up to 10 times)

2. It seems to me we need:

a) a several base functions that solve low level incompatibility problem OpenCV-LabVIEW

b) dll-s of OpenCV functions

c) a short manual that explanes how to wrap new OpenCV function

So, everybody can wrap the functions in need. Obiously, for a lot of simple projects that assume mass yielding it can be the best way to go.

Best wishes,

Link to comment
  • 2 weeks later...
  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

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