Imaq Image Display Control - Zoom tool - zoom factor changes slowly

Hi at all,
we have a strange behavior with the zoom factor of the Image Display Control in an Labview executable.
Ususally by clicking into the image with the zoom tool activated, the zoom factor changes from 1,2,4,8,16, ... ("x2")
Now we have one PC, where it changes from 1,2,3,4,5,... ("+1")
Has anyone an idea on which windows setting this behavior depends on? The PC runs with Windows XP SP3, the LV-Exe was built
with LabVIEW 8.5.1 and the Vision Development Module 8.5.0. Is there any regsitry setting where I can adjust the "click intensity" or
something like that? Or can I set a property of the image control to force a specific behavior?
Actually I have never seen this behavior before, I only know the half/double mode. 
In the software the operator has to search for fiducials on PCBs what means he has to click several times into the image.
Changing in the Mode "+1" instead of "x2" is not acceptable for him.
Thanks for your help!
Stefan

Hello Stefan,
thank you for posting at the National Instruments forum. The "Zoom Behaviour" was changed due to customer requests. I totally agree with you, that it is not the best solution to click 24-times to get the desired region of interest.
I created a small example for LabVIEW 2010, which uses a property node and event structure, to perform the zoom programmatically.
Best regards
MarianO
Attachments:
Calculate Zoomfactor.vi ‏21 KB
Image Example.vi ‏63 KB

Similar Messages

  • Using IMAQ Image Display control vs IMAQ WindDraw for large image files

    Hello All;
    I am designing an application that is currently using IMAQ Image Display control to view large images (5K x 3K and larger).  My problem is that these images take 10-20 seconds to load and display, whereas if I use IMAQ WindDraw to display my image in a separate window, it only takes a couple of seconds.  My application is designed such that I am making use of the Subpanels in LabVIEW 8.0, and to make it pleasant for the user, the interface is such that my line profile, histograph and image viewer displays are contained within the same GUI (panel).
    I read the National Instruments application note regarding displaying of large images, and it did not seem to make a difference.  For example, I switched the 'modern' IMAQ Image Display control with the classic Image Display control, since the 'classic' does not contain any of the 3D rendering tools which might slow the process down.
    Why is there such a huge difference in loading times if I am trying to do exactly the same thing with both methods?  How can I bring the IMAQ Image Display control up to the same speed as the IMAQ WindDraw tool?
    I am currently using LabVIEW 8.0 with the latest IMAQ/NI Vision package from NI (IMAQ v7.1?).  Thanks.
    DJH

    Use a property node and select 16 bit image mapping. You can create a control for this or whatever you need. If you select the individual elements, you can get enumerated controls.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • Image display control scrolling does not work properly when zoomed in

    I am using a ROI on an image in the image display control. When zooming into the image to fine-adjust the positioning of the ROI, the image scrolling does not work properly. As far as I understand, the image should scroll automatically when the ROI is leaving the visible area. However, the scrolling behaviour seems to depend on the origin of the Labview panel, not the origin of the image display control, which might require to move the ROI way out of the visible area before the scrolling takes place. In other words: the coordinate system of the image display control is shifted with respect to the true visible image area, depending on where you place it on the front panel. As a consequence, when clicking on a ROI which is in the visible area, but is outside of what Labview thinks is the visible area, it might immediately jump to the left border of the image, making the positioning of the ROI really difficult.
    Has anyone noticed this behaviour, and what would be a reliable solution to avoid this? 
    Dirk

    Hello,
    no, I am not talking about the tools palette. Just place an image control with some image in it on a new VI front panel. Then, use the rectangle from the tools and select a ROI in the image. If you zoom in (using the magnification glass), and then grab the ROI and move it around, the image scroll with the ROI. So far, so good. If you now place the image control elsewhere on the panel, or add new control above it, resize the panel, etc. , this scrolling when moving the ROI will not work correctly if the origin (0,0) of the panel is far away from the image control.
    I have attached a VI for simplicity (although there is hardly any code in it).
    If you make a ROI and try to move it down, you will notice that scrolling starts if you move the mouse out to about 10cms below the image (depens on your screen, of course). After that, if you click on the ROI, the scroll bars and ROI might jump up to the upper end of the image. Imagine how annoying this is if you try to finely adjust the ROI position. 
    I think it is a bug in the implementation of the image display control.
    Thanks,
    Dirk
    Attachments:
    scrolling.vi ‏818 KB

  • Flickering problem with live viewing with IMAQ Image Display

    Hi everyone,
    I am trying to write a program to do live imaging with Andor camera. I am using some examples from Andor. The images are acquired in sequence and send into IMAQ Image Display and also Intensity Graph. There is minimal flickering issue in the Intensity Graph but there is very bad flickering problem in IMAQ Image Display. Perhaps I misunderstand how to optimize the vision tools. Does anyone know how to overcome this issue? I have attached the code that I am testing. Thanks in advance.
    Best regards,
    Han Yen
    Solved!
    Go to Solution.
    Attachments:
    iXonRTA_live_0.0.1.vi ‏70 KB

    You can use Vision Assistant to test our vision functions. Vision Assistant is really meant to prototype - it does not have all teh functionality of Vision Development Module and is not as flexible as we don't allow you access to all the settings for every function.
    I recommend starting in Vision Assistant and then porting over to LabVIEW or C (whatever you are most comfortable with)...this is built-in functionality. There is nothing wrong with using Vision Assistant to do live imaging, just that you run into limitations and you will only be able to use this code on computers that have Vision Assistant.
    Hope this helps.
    --Michelle
    Instrument Control R&D
    National Instruments
    Instrument Control
    Machine Vision

  • Why does moving the mouse over an IMAQ image display slow the GUI down so much?

    I have a large application with several vi's running simultaneously under labview 8.6.1.  When I mouse over an image display control in one of the vi's, everything slows down a shocking amount in all the other vi's.  The windows task manager does not show a large increase in CPU use.  My pc is has a quad cpu with 4GB of RAM, and the CPU and memory loads do not appear to be terribly taxing to the system.  However, many of my vi's apparently come almost to a standstill if I just move the mouse in a circle around my image control.
    This looks like it is largely a GUI display issue.  If I make a new vi and put a while loop in it that only displays the iteration loop number to an indicator, I can see the iterating occurring, then stopping totally when I mouse inside the image display control.  When I stop moving the mouse inside the control, or when I move it outside the control, the interation loop number jumps up, as if it had been incrementing behind the scenes the whole time.  So only display of the interating was halted.
    This problem occurs even if the vi with the image control is not executing.  If the vi with the image control is open but not running, and I mouse over the image on it, the other guis all come to a screeching halt.
    Does mousing in the image display control really utterly crush all other guis in all other labview windows?  Is this an issue inherent to the image display control?  If so, is there anything I can do about this? 
    Also, this issue is not entirely limited to display.  I started looking at it in greater detail because this issue also exposed what I think is a race condition in my code.  I have a vi that acquires an image from a ccd and puts it into an IMAQ image.ctl.  This image then gets passed up to a vi up the call chain, and is put on a queue and sent over to be de-queued by a vi that has the image display control.  Here's the kicker:  when I mouse over the image display control, the image successfully gets acquired inside the subvi, and if I probe the wire leading to the output IMAQ image display.ctl, I see the image.  If I simultaneously probe the wire coming out of the subvi one level up the call chain, the image gets lost about half the time.  This only happens if I am mousing in the image display control IN A TOTALLY DIFFERENT AND SEPARATE VI.  If I bump up the priority of the ccd image acquisition vi to 'highest priority', the problem only happens about 1% of the time, and I really have to mouse around to make it happen.  Still, it's disturbing that mousing in the GUI in one window results in a failure of a separate subvi to simply pass an image up the call chain.  I understand that IMAQ images are referenced rather than passed by value, but I don't see why there should be a failure to pass the image up the call chain.  I've looked for a race condition, but can't find one.
    Eric

    I have finally been able to replicate the behavior that you are seeing on another computer once the image was large enough.  Here are a few notes about this behavior:
    First. The UI only slows down when the images are large, 16 bit images.  The reason why this is unique to 16 bit images is that they can only be displayed on the front panel as 8 bit images.  The workaround that Weiyuan suggested to change the 16 bit display mapping hints towards the root of the problem...that any time a mouse runs over the indicator, Windows asks the entire image to re-draw (having a separate indicator overlapping the image will create the same behavior).  With a 16 bit image, not only does the image have to re-draw on the screen but the 16 bit pixels need to be mapped to 8 bits.  When setting the 16 bit display mapping to Full Dynamic, this requires mor computation/pixel than 90% dynamic or one of the other mapping schemes.
    This is expected behavior if your program is running and you're trying to display a large 16 bit image.  To fix this behavior there are a couple options:
    Change the 16 bit display mapping to something other than full dynamic.  You can choose which 8 bits to display or if you want to map the bits. 
    Resize the image just for viewing purposes on your front panel (since you aren't going to view every single pixel of you image on the screen). You can use the IMAQ Resample.vi to do this.  This will allow you to take your 1500x1500 pixel image and only display a 500x500 pixel version.
    If you are interested in viewing small details of the large image, consider just displaying a smaller region of interest at a time.
    Let me know if any of these solutions work for you.  Good luck on your application.
    Zach C.
    Field Engineer
    Greater Los Angeles

  • Any way for one VI to dynamically update images shown in another VI's Image Display control?

    I've just discovered (in LV v7.0) that, while I can wire to it, I cannot write image data to a "value" input terminal of a property node associated with an Image Display. When the VI runs I get this error:
    "IMAQ Vision: (Hex 0xBFF6051A) The Image Display control does not support writing this property node."
    (I must admit that I have to wonder why we are allowed to wire to it, if all it does is generate this error)
    Is there any way for one VI to dynamically update images shown in another VI's Image Display control?
    I am not interested in using IMAQWindDraw windows.

    OK, I have found one way to simultaneously access one VI's image data within another VI without the use of globals. I don't know if it makes use of a known feature of image data that will be with us forever or if it is a bug that will disappear sometime in the future...
    It seems that if I create an image data stream in one VI using IMAQ CREATE and name the data stream "ABC" and then create an image data stream in another VI using IMAQ CREATE and also name that data stream "ABC" then in fact they are both the same data streams and they can be read or written by either VI.
    Using this feature I can write the common data stream in one VI and using a shared occurrence or semaphore let the other VI know when it is OK to display the data from the common stream.
    This method requires that the displaying VI needs to have a while loop around the image display which is not nearly as simple as a display that is updated automagically by another VI writing to a VALUE input that is referenced back to the Image Display. I'd still like to know if there is some way to make that work.
    One corollary to this is that if you have several image data streams in use in a system (they can be in totally separate VI's, running independently) and you don't want them tromping on each other's image data then you need to make sure that they (the image data streams) get created with different names. An example of a place where this might bite you (and where I discovered this "feature") is to have multiple copies of the same VI with different names to do image acquisition and display from multiple cameras. Being copies of the same VI, they all had the same image data stream names, defined as constants, within them. When they were run simultaneously, the image data from all of the multiple cameras randomly appeared in all of the image displays. I don't know if this feature would hold up if the separate VI's were turned into separate executables and then run. Do any of you know if this sharing of image data streams with common names works across executables running on the same machine?

  • Imaq windraw vs. Imaq image display

    Until recently, i've been using the imaq windraw vi to display the real time images i capture. Now I am trying to use the imaq image display vi instead...the only problem is that it slows my application way down. Does anyone know why it would slow the application down so much? With windraw i processed about 900 images a minute, but with the image display i only process half that many. Does it have something to do with the image display being part of the GUI??

    Most likely the slow down does have to do with the image being displayed as part of the GUI. There are some things that you can do to increase performance. Take a look at this KB for some good suggestions.

  • IMAQ WindDisplayMapping...for Vision Image Display Control?

    The IMAQ WindDisplayMapping operates on an IMAQ window display. Is there an equivalent fx that will operate on the Vision Image Display Indicator that can be placed on LabVIEW front panel? (Or do I need to code up the equivalent fx?)
    Thanks,
    Don

    Use a property node and select 16 bit image mapping. You can create a control for this or whatever you need. If you select the individual elements, you can get enumerated controls.
    Bruce
    Bruce Ammons
    Ammons Engineering

  • How do you change the location of a small image within an IMAQ image display?

    I have an image that exactly fills the display. But then I want to extract a portion of the image and display that small piece, but have it be in the same location as it was before, not centered in the display (essentially I want to crop the image but leave it in the same location). I tried the 'Image Center Position' property node for the image display, but is resets itself to the center of the display. Can anyone offer any suggestions?
    Thanks,
    Marty
    Attachments:
    Crop_Pic_Test.vi ‏102 KB

    Marty_M wrote:
    I have an image that exactly fills the display. But then I want to extract a portion of the image and display that small piece, but have it be in the same location as it was before, not centered in the display (essentially I want to crop the image but leave it in the same location). I tried the 'Image Center Position' property node for the image display, but is resets itself to the center of the display. Can anyone offer any suggestions?
    You misused the Image Center position property : it works only on images larger than the display area. Have a look at the simplified version of your sample vi.
    One way to achieve your objective will be to create a black (or white) background image, with the same size as the original image and to paste the small piece over this BG.
    Happy New Wires
    CC
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Attachments:
    Crop_Pic_Test[2].zip ‏22 KB

  • Image not displayed correctly in image control at small zoom level

    I am displaying an image in an image control with a zoom factor of ~0.015 and it appears as shown in image 1.jpg.  When I zoom in a little more to ~0.016 the image is displayed correctly as shown in image 2.jpg.  Both images are attached.
    Why is the image displayed as a "grey strip" in the first image?  What do I need to do to have the image displayed correctly at any zoom factor?  I am using LV 2011 with the associated vision development module on Windows 7.
    Thanks,
    Jonathan-LV
    Solved!
    Go to Solution.
    Attachments:
    Image 1.jpg ‏133 KB
    Image 2.jpg ‏152 KB

    Hi Jonathan,
    Did you try resizing your image dimensions, as I suggested in my previous post? Anti-aliasing is an expected behavior; as you zoom out, the image has to be resampled in order to be displayed properly. At some point, LabVIEW assumes that the image has been resampled to the point where it no longer resembles the initial image, and so it greys the image out. In the case of your image, that is not the case. As I said, I believe an acceptable workaround would be to use IMAQ resample to half or quarter the pixel dimensions of your image, at which point it should be able to be displayed at a higher zoom factor. 
    Best,
    Dan N
    Applications Engineer
    National Instruments 

  • How to programmatically control the Image display size

    I wonder if
    it is possible to let the Vi adapt the size of the VISION image display if the
    user zooms in the displayed picture (as can be done in other graphical software
    like Photoshop or ImageI). Is there something prepared?

    If you are using LV 7.1, there is a property node that let you define the size of the image display.
    Chilly Charly    (aka CC)
             E-List Master - Kudos glutton - Press the yellow button on the left...        
    Attachments:
    Image size.vi ‏64 KB

  • 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

    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.

  • How to set Image display palette while running

    I can see the palette type in property of image display reference...but i cant find any method to set it.
    (The problem is that, in Labview right click on image open a menu with palette selection visible. But in EXE apllication there is no extended menu. so i want to change the paltte through control button)
    Tnx for help
    HaD

    Hello HaD,
    The image control is installed with either the Vision Development Module or the NI-IMAQ driver, and is not a standard component found in LabVIEW.  If you have questions about the image display control or vision functions it would be better to post in the Machine Vision forum:
    http://forums.ni.com/ni/board?board.id=200
    In regards to your question, this menu is not available as a runtime property, and therefore the user of program will not be able to set it directly through the control.  Instead, you will need to allow the user to set it programmatically in LabVIEW by use of a property node. 
    To create this property node, right-click on the image display icon on your program's block diagram, and select:
    Create » Property Node » Palette » Palette Type.
    You will then be able to change the value of this property by right-clicking on the property node icon and selecting "Change All To Write".  To create a control on the front panel that the user change at runtime, right-click on the “Palette Type” input, select:
    Create » Control
    If you have any questions about the application architecture required to implement this design, please continue to post in the LabVIEW forum.
    I hope this helps.
    Best regards,
    Jasper

  • LabVIEW 8.2 Image Display bug

    Hi all,
    Description : Trying to create a constant by right
    clicking on an image display (controls palette > vision > image
    display) causes labview to crash.
    LV
    version : 8.20 only, didn’t exist in 8.0.1 and earlier !
    Same bugg happens:
    with image display (classic),
    when trying to create a constant from a
    local variable of these indicators,
    when trying to create a constant on the
    connector of a subVI for these indicators.
    Message Edité par TiTou le 10-23-2006 08:38 AM
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"
    Attachments:
    bugg_image_display.png ‏234 KB

    Hello,
    Thank you for reporting this.  A CAR has been filed on the issue - for reference the CAR ID is 4308NMSQ.
    Best Regards,
    JLS
    Standard Response:
    This was reported to R&D (4308NMSQ CAR ID) for further investigation. Thanks for the feedback!
    Best,
    JLS
    Sixclear

  • How to update/refresh main panel's image displays inside subvi?

    Hi everyone,
    I have a image display control located in my main panel,  and I have a subvi which do some process works inside it.
    but what I have done inside the subvi can not be seen in the main panel.
    I used image session controls as the input/outpout nodes for subvi.
    If I use image display control as input node for subvi,
    I can see the realtime displays in the subvi's panel,
    but this is not waht I wanted.
    anyone have good idea?
    Solved!
    Go to Solution.

    Reall sorry, i have attached 8.6 version.
    Also, I think the answer of Andrey_Dmitriev is what you are looking for. I think I understand your problem now. My example updates the image only after subVI is executed.
    Regards,
    https://decibel.ni.com/content/blogs/kl3m3n
    "Kudos: Users may give one another Kudos on the forums for posts that they found particularly helpful or insightful."
    Attachments:
    mainVI_1.vi ‏36 KB
    mainVI_2.vi ‏36 KB
    subVI_sobel.vi ‏9 KB

Maybe you are looking for