Jump to content

Open Source alternative to IMAQ Vision Toolkit


Recommended Posts

Is there anyone interested in setting up an open source alternative to the IMAQ Vision toolkit using OpenCV. I've done some preliminary work to see if it is possible, but before I go offering up my work so far I was curious if anyone was interested. I think this would be a good addition to OpenG's set of tools, but I thought this forum would be a good sounding board to see if such a toolkit would be desired. If this topic is of interest to you please reply to this post, where we can begin to work out some of the details.

Thanks,

Chris Davis

Link to comment
Is there anyone interested in setting up an open source alternative to the IMAQ Vision toolkit using OpenCV.  I've done some preliminary work to see if it is possible, but before I go offering up my work so far I was curious if anyone was interested.  I think this would be a good addition to OpenG's set of tools, but I thought this forum would be a good sounding board to see if such a toolkit would be desired.  If this topic is of interest to you please reply to this post, where we can begin to work out some of the details.

Thanks,

Chris Davis

5243[/snapback]

Well, I think it could be an interesting project, but I also think it is a project about the size of Comedi or similar. As such it will be a long time before there is something which can be used for serious applications and it always will require tinkering of some sorts to get it working on a particular system.

While directly calling into the OpenCV shared libraries will probably allow you to have something working fairly fast it will proof in the long run to be disadvantagous and quite a bit of a hasslle to maintain. Last time I looked at that it seemed to me almost unavoidable to develop yet another intermediate shared library which takes on the task of translating stuff between the OpenCV environment and LabVIEW.

And then you shouldn't forget that there is already IVision from http://www.hytekautomation.com. It does exactly what you are more or less trying to reinvent (though it isn't really free for professional use). This leaves even fewer people interested to spend an enormous amount of time for such a project.

Most professional users will prefer to use IMAQ because it offers support, and a known communication partner to talk too. The few professional ones feeling IMAQ to be to expensive will probably go with IVIsion and then you are left with the ones doing it as a hobby or being in education and that usually turns out to be not enough to carry a project of this size and complexity (Call Library Nodes, C programming) for a longer time.

Rolf Kalbermatter

Link to comment

Well, I don't know if you really want to do it as free (believe me, I don't say this just because I have the IVision, you are welcome doing it if you want, I don't live on IVision although it's very nice to get reward from it). As Rolf pointed out, it is a lot of work!. You not only need knowledge of C/C++, LabVIEW, but also image processing background, it's not like some people may think, straight translation of C to LabVIEW, if you don't know what's going on in each function, how do you test it and know the result make sense? (by the way, image processing was my favorite course in university and I got a very good mark a long time ago :) so I do understand image processing, I always wanted to use it sometime and it sort of came to true with IVision). I'm not saying that you don't have these knowledge, just want you to know the scope. Although some people may feel that I do it on a hobby base, but it does take me many good days and late night doing it and full time dedication (I quited my job, it's harder than finding a job). Things that make me feel good is there are over 15,000 people looking at IVision and over 4000 or more download it. Many people use it for real work application and the feedback I got so far are good, some expressed very satisfied for what they doing. Although there are also many do not say neither good nor not good and I don't want to ask/know either. :)

It feels a bit sad to know some people think it's just a hobby work, not seriously. Hmm... what's all my time spent for? Maybe my life is just wasted :( . But I believe people who use it and know how to use it, they would know it's more than just hobby.

Irene He ------ Author of IVision

Link to comment
  • 5 weeks later...
It feels a bit sad to know some people think it's just a hobby work, not seriously. Hmm... what's all my time spent for? Maybe my life is just wasted :( . But I believe people who use it and know how to use it, they would know it's more than just hobby.

Irene He ------ Author of IVision

5334[/snapback]

I hope you do not consider my remarks as saying IVision is a hobby project. It is far from that!

What I was saying above is that a lot of professional users will prefer IMAQ Vision because it is from a well known party (namely the makers of LabVIEW), and they feel more comfortable to deal with a company of that size, which gives them a certain feel of safety. This is not just about IVision but in fact about any Toolkit ever released for LabVIEW. The NI version doesn't necessarily have to be better to sell, whereas as an independant developer you really need to have some really good aces in your sleeve to get even a small part of the market. This is and has been the case since the beginnings of 3rd-party LabVIEW toolkits although back in the early days it may have been a little easier sometimes. Though just consider that the two most successful 3rd-party Toolkits (Radius or so Database Toolkit and Graftek Vision Toolkit) really got bougth after some time by NI, and the rest have died or suffer a low volume existence hardly paying the administrative costs for distributing them.

Some people will find IMAQ Vision to expensive for what they want to do and will be looking at IVision.

The few who are left after that because even IVision is considered to expensive (for professional use that is as for the rest the evalution version probably will work well) are probably not very interesting to carry a project of this size. They will consist of people doing this just for a hobby or being in education where time spent is not an issue. However even for the last group this project is way larger than what a typical student could possibly manage in a semester work or something like that. And this would assume that such a student already has quite some knowledge about LabVIEW, LabVIEW external code, C programming and image analysis theory. I for my part can shine in the first three categories but lack in the last one considerable knowledge to carry such a project myself. Besides I have other priorities at the moment.

Rolf Kalbermatter

Link to comment
  • 9 months later...
Is there anyone interested in setting up an open source alternative to the IMAQ Vision toolkit using OpenCV. I've done some preliminary work to see if it is possible, but before I go offering up my work so far I was curious if anyone was interested. I think this would be a good addition to OpenG's set of tools, but I thought this forum would be a good sounding board to see if such a toolkit would be desired. If this topic is of interest to you please reply to this post, where we can begin to work out some of the details.

Thanks,

Chris Davis

Hello Chris,

(sorry my english)

I don't know, Want You make free vision toolkit, yet? I found project on internet - Robolab for Labview. This is project use the capture cards, webcams and other directshow devices under Windows XP - via interface of QuickTime. I tried Vi-s, working. I set resolution and others parameters from program and I snap pictures.

I interested in this free solution, it's fine idea. :yes:

OpenVisionToolKit go, go, go ... :star:

Link to comment
Hello Chris,

(sorry my english)

I don't know, Want You make free vision toolkit, yet? I found project on internet - Robolab for Labview. This is project use the capture cards, webcams and other directshow devices under Windows XP - via interface of QuickTime. I tried Vi-s, working. I set resolution and others parameters from program and I snap pictures.

I interested in this free solution, it's fine idea. :yes:

OpenVisionToolKit go, go, go ... :star:

Robolab is AFAIK a commercial software actually meant to be used with Lego Mindstorms. The fact that you can download it from some servers does not mean that it is free and Open Source. And as far as OpenVisionToolkit is concerned, why not step up yourself and show to everyone that you want to do some real work ;-)

Rolf Kalbermatter

Link to comment
  • 4 weeks later...
Is there anyone interested in setting up an open source alternative to the IMAQ Vision toolkit using OpenCV. I've done some preliminary work to see if it is possible, but before I go offering up my work so far I was curious if anyone was interested. I think this would be a good addition to OpenG's set of tools, but I thought this forum would be a good sounding board to see if such a toolkit would be desired. If this topic is of interest to you please reply to this post, where we can begin to work out some of the details.

Thanks,

Chris Davis

That's a great idea! In fact we're actively doing something similar that at http://www.roborealm.com/ for free!

The free or open source tools each have their benefits. OpenCV is certainly the best known and probably widest scope but typically requires c++ programming to make use of it. Others like ImageJ (Java based) have a more microscopy focus and nicer GUI .. there are many out there as both libraries and/or applications. For a comprehensive list that we've found check out http://www.roborealm.com/links/vision_software.php

Enjoy!

STeven.

Link to comment
  • 3 weeks later...
Robolab is AFAIK a commercial software actually meant to be used with Lego Mindstorms. The fact that you can download it from some servers does not mean that it is free and Open Source. And as far as OpenVisionToolkit is concerned, why not step up yourself and show to everyone that you want to do some real work ;-)

Rolf Kalbermatter

Hi Rolf,

Yes is true. The Robolab for LabVIEW use the QuickTime Vis. Christophe Salzmann wrote these VIs.

http://labview.epfl.ch/QT/QTVis.html

He talk - "These VIs are meant for your private use. Please contact me for licences."

I try to make access to capture devices via activeX. This solution will free.

Trufiadok

Link to comment
  • 1 month later...
Is there anyone interested in setting up an open source alternative to the IMAQ Vision toolkit using OpenCV. I've done some preliminary work to see if it is possible, but before I go offering up my work so far I was curious if anyone was interested. I think this would be a good addition to OpenG's set of tools, but I thought this forum would be a good sounding board to see if such a toolkit would be desired. If this topic is of interest to you please reply to this post, where we can begin to work out some of the details.

Thanks,

Chris Davis

Let me first say that I would be very interested in an open source alternative to IMAQ Vison.

LabView 8.20 has a nice import dll wizard that should make this task a lot easier.

I'm fairly new to programing so I haven't quite figured it out yet. I think my troubles come from identifying the correct header file to include. It only allows you to specify one header file and I'm not sure if there is a single header file you can call. If you figure this one out please let me know.

Philip Ashley

Link to comment
Let me first say that I would be very interested in an open source alternative to IMAQ Vison.

LabView 8.20 has a nice import dll wizard that should make this task a lot easier.

I'm fairly new to programing so I haven't quite figured it out yet. I think my troubles come from identifying the correct header file to include. It only allows you to specify one header file and I'm not sure if there is a single header file you can call. If you figure this one out please let me know.

Importing from the DLLs (OpenCV exists of several of them) is really a nitty gritty and time consuming work but still by far not the largest part of such a Toolkit. Many datatypes with OpenCV are specifically C oriented and not suited for direct consumption in LabVIEW so you will have to do some intermediate DLL programming such as what has been done in IVision, or suffer terrible performance.

Then you need to make the automatically created VIs use more appropriate controls, add documentation, icons and help information to it. Otherwise nobody is going to use it since it is way to hard to understand. And there is nothing worse than an Open Source library that nobody does use.

Rolf Kalbermatter

Link to comment
... Then you need to make the automatically created VIs use more appropriate controls, add documentation, icons and help information to it. Otherwise nobody is going to use it since it is way to hard to understand. And there is nothing worse than an Open Source library that nobody does use.

Agreed. And lets not forget lots of good examples VIs as part of the documentation. This is a big project and with a big one like this you fall flat if you don't have all those additional items Rolf mentioned. It would really be sad to invest that kind of time, unpaid, and not have it be used.

However, if you selected only a smaller subset of the functionality, then maybe you could deliver a complete package on just the functions you initially support. Remember, most users do not actually use most of IMAQ Vision. If you did a small opensource subset of functions and provided docs and examples showing how to use it for an initial specific industry problem, then at least within that niche you might get some traction.

Specific Niche: Maybe successful as open source

General Purpose Vision: forget it, way to big to do it unpaid

YMMV

Link to comment

As the original poster, I feel compelled to reply.

I looked at OpenCV, I also looked as some of the open source / free toolkits that other users have worked with. I came back to the problem that Rolf has mentioned time and again. If you can't create something that is easy to maintain and easy to use, you are setting yourself up for a lot of time and maintenance effort. As Mike Ashe has mentioned, if you don't have some compelling examples and documentation your code will not be interesting to others.

My problem is that one of the main programs I use only uses the display part of IMAQ. In an image acquisition program, whos only job is image acquisition, you only have to use the display part. Many of you may be saying that the display part of IMAQ is part of the NI-IMAQ (camera acquisition) distribution. Unfortunantly there are a few functions that I'm using that are not part of the NI-IMAQ distribution. Specifically the vis named Array to Image, as well as Get Pixel Pointer. These allow my program to use framegrabbers other than NI framegrabbers. I don't blame NI for not including these subroutines, but would be interested in a lower cost or free alternative IMAQ that would allow me to display images that I create.

My problem hasn't gone away, but I have thought and tried a different solution. For those who have CVI you can check out the canvas control. For 8 bit or 32 bit color images you can use this CVI control (wrapped in a DLL) to display your images. I can't post the code for you, but I can tell you that after you read the CVI help and look at the CVI examples on the canvas control you will be able recreate what I did if "you know enough C to be dangerous."

As it stands I'm going to check out Irene's IVision toolkit since it seems to be another alternative that I can use.

I'm not trying to discourage anyone who might be interested in doing an open source alternative to IMAQ, but I've found my solution, and an alternate solution in case the canvas control can't do what I need.

Link to comment

I think you are being a bit negative here, maybe - because:

"Always listen to the experts, they'll tell you what can't be done, and why.

Then go do it."

:D

Seriously, it is a lot of truth in those words, but maybe something like IMAQ is not the best project for open source. It is probably better to do it as a "one man show". If you know enough LabVIEW "to be dangerous" and a LOT about image aquisition and analysis, it should be quite possible IMO, but probably much more difficult the other way around. Maybe THE greatest strength of LabVIEW is that by maximizing on all the benefits that LabVIEW has to offer (interactive interfaces, graphs, interfaces to literaly all kinds of external devices and buses, extremely rapid code development, fast execution (can sometimes be really tricky - but still), allmost unlimited amount of functions and functionality, etc), you will have alot of headroom to consentrate on your particular field of expertice. The more complicated or less mainstream your field of expertice is, the more will good solutions and good applications be created by understanding that field instead of clever coding - as long as you know enough LabVIEW to be dangerous :) Of cource, you can say the same thing about all programming languages, but for those applications where you can take advantage of the benefits in LabVIEW, this will give you a tremendous advantage.

Link to comment
  • 14 years later...

With the advent of free 3D modeling packages (Fusion 360 from Autodesk), National Instruments Labview Community Edition(also free), affordable 3D printing and many other free of low cost engineering software and hardware an prebuilt vision LV toolbox would be great.  OpenCV is free ($ wise) but it's huge and the level of effort needed to use it is daunting.  

I would support such an effort as I am into robotics and don't want to pay NI the  $500+ for the vision toolkit, plus I'm not sure that would save me the effort of developing a software package (.dlls or .net?) to interface to OpenCV.

Link to comment

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.