LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Don't understand IMAQ image behavior

Hi there,

     I have several image controls in my application.  When I assign image A to image B (in my wiring diagram), and then close image B, image A is no longer valid!  When I try to crop image A after closing image B, I get a "not an image" error.  If I do not assign image A to image B, I don't get the error.  If I do not close image B after assigning image A, I don't get the error.
     I am new to IMAQ and don't understand this behavior at all.  It looks like when I try to give the value of image A to image B, it somehow links the two rather than just copying the information over.  Is this a pointer and reference vs. value assignment issue? 
     Regardless, these IMAQ image controls behave differently than any other control in the labview palette.  I hope someone can explain what I am seeing to me so that I that I can learn when I can assign one image to another, and when I can close, and how I can avoid extremely confusing and difficult to debug results.

Thanks,
Eric
0 Kudos
Message 1 of 2
(2,615 Views)

Hi,

You must create each of Image A and Image B separately using IMAQ Create and then copy content of image A to image B using IMAQ Copy.

Image Display control in Labview does not create an image and does not reserve memory for it. It just displays content of the image it is wired to. I suspect that when you "assign" image A to image B in your program,  you just wire the same image to 2 Image Display controls. No wonder they show identical image. When you "close image B", you actually closing the only image you have, memory space allocated fot that image is released and reference is no longer valid. After that any attempt to modify/change that image will return "not an image" error.

I recommend you to look into Vision examples shipped with Labview - see for example "Extract Example.vi" in "C:\Program Files\National Instruments\LabVIEW 7.1\examples\Vision\2. Functions\Image Management". In the path above you should change LabVIEW 7.1 to your version of LabVIEW.

0 Kudos
Message 2 of 2
(2,595 Views)