Jump to content
brainmort

Reinventing the Image indicator

Recommended Posts

Hi,

I'm looking for a way to implement an image indicator, very similar to the one from Vision, but it mustn't use any of the IMAQ/Vision functions or the Picture indicator.

All I've found was how to create controls with custom icons or make a custom control from several built-in ones, so I would be very grateful if someone can tell me if there is any way to create LabVIEW indicators "from scratch".

Thanks in advance

Share this post


Link to post
Share on other sites

Hi, I have not had the need to create custom controls, and only poked at the concept, but it sounds like an application for X-Nodes. I think the better question is why is vision off the map? It is highly functional. I have used Vision before, and appreciate the hard work that went into it.

Share this post


Link to post
Share on other sites

Thanks for the reply! I'll look into X-Nodes. I know Vision is good but it costs too much and NI takes money for every sold/distributed copy of a system one creates using Vision. Actually, my task is to create a free alternative implementing some of the Vision's functionality.

Edited by brainmort

Share this post


Link to post
Share on other sites

I've checked the XNode feature and it turns out that it uses the Picture Control image format. The problem is I need my control to take a very specific data format and converting data between formats takes time. Besides, NI did somehow create their image control. I wonder if it is possible to do it the same way they did.

Share this post


Link to post
Share on other sites

I wonder if it is possible to do it the same way they did.

Nope. We've wanted the ability for years(along with control creation at run-time). We got xnodes instead (a compromise).

Share this post


Link to post
Share on other sites

Well, I've done exactly what you are asking, so it can be done. About ten years ago I had to take out any references and use of IMAQ in one of our Imaging Software. There was heavy use of IMAQ and this is how I went about it.

Step 1: I used another Imaging toolkit that had all the imaging functions that I needed This is what I ended up going with http://gromada.com/mcl/. If I had to redo the project I would use OpenCV now http://opencv.willowgarage.com/wiki/ Speaking on OpenCV there is already a toolkit that uses openCV called iVision http://www.hytekautomation.com/Products/IVision.html

Step 2: Create a control to display images, for this I created an ActiveX control. this control was also a wrapper around the functions that are available via the Imaging Toolkit you have chosen in step 1.

Step3: Every activex control has a Draw(Refresh) option. This is were you will obtain the Device Context of the ActiveX control and perform your draw code.

I hope this help you, now at least you have a starting point and know that It can be done.

  • Like 1

Share this post


Link to post
Share on other sites

The funny thing is, I'm actually working on a project of creating an open NI Vision-like library, based on OpenCV. I know about HYTEK iVision, but they have a stripped-down functionality comparing with the NI's library, which is strange, as OpenCV offers a much wider set of instruments. My main problem is that OpenCV has this extremely unnatural BGR image format. The Picture control can be easily wrapped to show such images but there are some data conversion performance expenses I was trying to get rid off. Though recently I've realized that even if I will be able to create my own control there still will be some drawing interface and there is no chance that it will be BGR.

ActiveX controls was the first idea, but I have to support different OSes and ActiveX is a strictly Windows-only feature. Maybe there is some alternative I could use for the Linux-based systems?

Anyway, thanks for your concern, I have a much clearer vision of the problem now.

Share this post


Link to post
Share on other sites

 Hi Brainmort

You don't need any NI vision license to make an exe with the image or picture display. It comes in the base package without vision.

You only need it if you use some vision tools. 

Share this post


Link to post
Share on other sites

The funny thing is, I'm actually working on a project of creating an open NI Vision-like library, based on OpenCV. I know about HYTEK iVision, but they have a stripped-down functionality comparing with the NI's library, which is strange, as OpenCV offers a much wider set of instruments. My main problem is that OpenCV has this extremely unnatural BGR image format. The Picture control can be easily wrapped to show such images but there are some data conversion performance expenses I was trying to get rid off. Though recently I've realized that even if I will be able to create my own control there still will be some drawing interface and there is no chance that it will be BGR.

ActiveX controls was the first idea, but I have to support different OSes and ActiveX is a strictly Windows-only feature. Maybe there is some alternative I could use for the Linux-based systems?

Anyway, thanks for your concern, I have a much clearer vision of the problem now.

Just to confirm! There is no way you can create your own custom control for LabVIEW. While the image control is located in kind of an external resource, some sort of DLL, it uses a completely proprietary and undocumented interface to integrate into and interact with the LabVIEW user interface. And all the meaty functions which do the real image drawing and what else of that control, are implemented in the LabVIEW kernel itself. Since we can't extend that kernel - it is located inside LabVIEW.exe - there is no way for people outside NI to do something like that.

Share this post


Link to post
Share on other sites

You don't need any NI vision license to make an exe with the image or picture display. It comes in the base package without vision.

You only need it if you use some vision tools.

Yes you do. If you build an exe and install it on another PC that does not have your development environment installed (with the associated Vision runtime), the IMAQ image display will NOT work. You need a vision runtime for every executable you build using any of the vision functions (even the image display).

The Picture control doesn't need a vision runtime licence since it is not part of the Vision set of tools.

Neville.

Edited by Neville D

Share this post


Link to post
Share on other sites
Sir, I want to whether it works as a dll within other language.

 

Lately, I build my vis to a single dll using vision tools to detect edge and them make some various measment.

I test the dll in LabVIEW enviroment and it works as expected.

Now, my colleague would like to use the dll in his project with VB.net, what we need do specially? Thanks.

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Yes you do. If you build an exe and install it on another PC that does not have your development environment installed (with the associated Vision runtime), the IMAQ image display will NOT work. You need a vision runtime for every executable you build using any of the vision functions (even the image display).

The Picture control doesn't need a vision runtime licence since it is not part of the Vision set of tools.

Neville.

Share this post


Link to post
Share on other sites

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.