Vision: Image Display within TypeDef breaks palette update

Came across it while debugging my vision application, where I need to display different representations of various bounding rectangles cropped from a large image. So I created a TypeDef with an array of ImageDisplays along with the bounding rectangle coordinates.
While using it I noticed that the palette update (runtime menu on inmage display->palette) within the image display array didn't work. When explicitly setting the palette via property node on the array element, everything is fine. Also, when disconnecting the cluster containing the image display array and the bounding rectangle array from said TypeDef, the paletteupdate via runtime menu works again. Now, the TypeDef is non-strict. So I wonder this is intended behaviour or a bug?
I've attached an example showing the different behaviour of with and without TypeDef.
Attachments:
TestChangePaletteMain.llb ‏114 KB

Is it possible to explain a bit more about why your are of this opinion? With a strict TypeDef I'd agree, but it's a non-strict one here. Therefore I'm not aware of a reason why this should be intended.

Similar Messages

  • When I buid an application, the vision image display is black.

    Hello !
    I have made an application using "vision image display". I have labview 7 express and vision builder 6.0. On labview, my application run very well and my image is displayed.
    I create an application with application builder 7 and I run it on a client computer with labview runtime engine 7.0 and IMAQ Vision 6.0 run-time engine. And my image is never displayed but stay black.
    Why ?

    Hello,
    I have a few questions concerning the problem. Where does the image come from, is it read in or is it from the harddisk. When the image is read in, which hardware do you use? I think you taked off the lens aperture and checked the contrast!? Check if the "vision image display" is correct licensed. Which Version is used from the "vision image display"? You can also check, when there is used any hardware if the drivers are the same on both systems. The current version is 2.6. With your answers, we should get a solution for the problem.
    ThomasD

  • 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

  • Can a Vision image display's "zoom to fit" action be seen by an event structure?

    The "Image Display" indicator from the "Vision" palette has a right-click (context) menu option of "Zoom to Fit".
    Is there any way to capture the selection/execution of this action with an event structure?

    I don't believe there is a way to do this with an event structure.  However, there is an image window property node for the zoom to fit option.  You can wire the output boolean into the input of a case structure and execute a different set of code depending on whether or not the zoom to fit option is selected.  This should give you the same functionality as an event structure.  Please let me know if you have any further questions.
    Regards,
    Chris L
    Applications Engineer
    National Instruments
    Certified LabVIEW Associate Developer

  • The IMAQ-Vision image display function seems to use two processors automatically

    Because the IMAQ-Vision function to display an image was slow for large images I wrote my own routine using the Windows SDK and it was much faster.
    However, now that the application has been moved to a dual processor PC the opposite is true, i.e. the application runs much faster if I use the IMAQ-Vision function. Inspection reveals that this is due to equal loading on the two processors, whereas if I use my SDK routine all the load is on the first processor.
    Is there some explanation for this? Do the IMAQ-Vision routines have built in multi-threading?

    Sir,
    Naturally, the IMAQ Vision display function does use multi-threading. Whether it uses the second CPU for this thread is operating system dependant.

  • 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 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

  • Can't find image display in the IMAQ Vision control palette

    Hi
    I am trying to display an image on the front panel. But i cannot find the image display vi .. according to the manual, it is available from the IMAQ Vision control palette. I have the academic version of LabVIEW 7 express. Does my version have the vi? Thank you
    rsa..

    Hello,
    The IMAQ Display control is a part of the NI-IMAQ driver. This driver is free of charge and can be downloaded from our website by going to www.ni.com/download. Here is a URL directly to the current version of IMAQ: "http://digital.ni.com/softlib.nsf/websearch/CD7EAFE90E9E47398625703000754A12?opendocument&node=132060_US". If you plan on using that control, I would recommend just installing the driver for it on whatever computer you want to use it on.
    Regards,
    Aaron B.
    National Instruments

  • 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?

  • 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

  • Image Processing and machine vision don't appear in Function Palette

    Hi,
    I have problem and I can't solve it
    Image Processing and machine vision don't appear in Function Palette, Although I set up NI imaq and NI Vision Acquisition Why??
    Anyone can help me?
    Solved!
    Go to Solution.

    If the image is already a Grayscale U8 image you would just have to save it to a bitmap file using the IMAQ WriteFile VI. If not, use the IMAQ Cast Image VI to convert it to a Grayscale U8 and then save it.
    Also, it would probably be better to create a new thread for questions like these.
    Cameron T
    Applications Engineer
    National Instruments

  • 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

  • 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 display: instead of an image, there is a "picture placeholder" icon

    Hello everyone!
    I'm afraid I need some assistance. As I've already indicated in a thread title, I have problems while trying to display an image stored within the database. I read zillion threads here on OTN, searched the Internet, but I can't make it work. More or less, it comes to what Denes Kubicek provided [url http://htmldb.oracle.com/pls/otn/f?p=31517:64:850093673123067]here
    Tools I use are Oracle 10g XE database (10.2.0.1.0) and Application Express (3.2.1.00.10).
    There's a table that contains information about certain products (such as printer toners, cartridges, CD media etc.). This is its description:
    SQL> desc pm_materijal
    Name                          Null?    Type
    ID                            NOT NULL NUMBER
    IDG                                    NUMBER
    SIFRA                                  VARCHAR2(30)
    SIFRA_KRATKA                           VARCHAR2(30)
    MODEL                                  VARCHAR2(30)
    NAZIV                                  VARCHAR2(255)
    NAPOMENA                               VARCHAR2(255)
    FILE_NAME                              VARCHAR2(200)
    MIME_TYPE                              VARCHAR2(255)
    BLOB_CONTENT                           BLOBOne of its records looks like this (other column values are unimportant) (columns are formatted so that they fit a single line):
    SQL> select id, naziv, file_name, dbms_lob.getlength(blob_content) len
      2  from pm_materijal
      3  where id = 64;
            ID NAZIV                FILE_NAME                                    LEN
            64 CD recordable 1/50 Now I'd like to attach an image to those CDs.
    In my Apex application, I created an item (on a page 7) whose name is P7_BROWSE (Display as "File Browse") - it is used to browse directories for files (images, actually). In order to support table record updating, I created a Process (Process point: On submit - after computations and validations).
    if :p7_browse is not null then
       update pm_materijal set
         (mime_type, file_name, blob_content) =
         (select
            mime_type, name, blob_content
            from wwv_flow_files
            where name = :p7_browse
         where id = :p7_id;
       delete from wwv_flow_files
         where name = :p7_browse;
    end if;It seems that it works OK, because - once I select an image (it is a JPG file, its size is 116 x 116) and push the "Apply Changes" button - the result is as following:
    SQL> select id, naziv, file_name, dbms_lob.getlength(blob_content) len
      2  from pm_materijal
      3  where id = 64;
            ID NAZIV                FILE_NAME                                    LEN
            64 CD recordable 1/50   F477411270/cd_50_komada.jpg                 2111           My next step was to create a stored procedure which will be used to display images:
    SQL> create or replace procedure image_display (p_id in number)
      2  as
      3    l_mime        varchar2 (255);
      4    l_length      number;
      5    l_file_name   varchar2 (200);
      6    l_blob        blob;
      7  begin
      8    select mime_type,
      9           blob_content,
    10           file_name,
    11           dbms_lob.getlength (blob_content)
    12      into l_mime,
    13           l_blob,
    14           l_file_name,
    15           l_length
    16      from pm_materijal
    17      where id = p_id;
    18
    19     owa_util.mime_header (nvl (l_mime, 'application/octet'), false);
    20     htp.p ('Content-length: ' || l_length);
    21     owa_util.http_header_close;
    22     wpg_docload.download_file (l_blob);
    23  end image_display;
    24  /
    Procedure created.As suggested in a few OTN threads, I did this too (although I don't quite understand WHY, as I created the procedure in a schema I use in Apex; there are no other users involved). Anyway: I thought that it won't do any harm (but it didn't do any good either).
    SQL> grant execute on image_display to public;
    Grant succeeded.
    SQL> create public synonym image_display for radni.image_display;
    Synonym created.Back to Application Express: I created a Reports Region (Type: SQL Query). Its source is :
    select
      id,
      file_name,
      mime_type,
      dbms_lob.getlength(blob_content) len,
      '<img src="#OWNER#.image_display?p_id='
             || NVL (ID, 0)
             || '" height="'
             || 120
             || '" width="'
             || 120
             || '" />' image
    from pm_materijal
    where id = :P7_IDFinally, run the page! Reports region contains a single record which displays information I selected in SQL*Plus (so it seems that query DOES return something, and - I'd say that it is correct), but - instead of an image - there's an "invalid (broken) image" icon (you know, a small white rectangle with a red <font color="red">x</font>).
    I can't figure out what I did wrong. It should work, but it doesn't. Could someone, please, point me to the right direction?
    Regards,
    LF

    Patrick said: specify your schema name instead of the #OWNER# placeholder
    I said: while I was trying to make it work, I used "schema_owner.procedure_name" notation too but that didn't help eitherOracle user name is "RADNI" (the one I used to create objects, I was connected to it in SQL*Plus - all my previous copy/pastes were taken while connected to that user).
    So I tried with
    - <img src="radni.image_display?p_id=...   => didn't work
    - <img src="RADNI.image_display?p_id=...   => didn't work
    - <img src="image_display?p_id=...         => worked
    {code}
    I just started using Application Express so, basically, every day I discover something new. I purchased a book (based on Apex 3.2) so I thought that I'd rather stick to it until I +get a feeling+ and then, hopefully, move on to a higher version.
    By the way, looking forward to see you on HrOUG in two weeks!                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Image Display got rotten (really: the Indicator, not the Image!)

    I'd like to hear comments on the following VI, containing just a single Image Display Indicator, which, for some reason got corrupted during porting across LV versions and resizing. By divide and conquer I found that it was the origin of pretty odd problems that I was observing in a complex VI: absence of front panel updates, pull down menues not displayed, actions needing a double press of buttons, and so on.
    The VI is saved from LV2012 windows, also attached as saved for 8.5. Just opening it, on 2 installation of Labview, I turn labview into something responding oddily. (try to pull down a menu, e.g.). Linux LV seems not to suffer from it, maybe because it places a nonfunctional FP placeholder for this control, without trying to cope with its nonfunctionality.
    The question is perhaps, why LV doesn't detect the problem and behaves so weirdly with it -- bug?
    Enrico
    Attachments:
    BadImage.vi ‏34 KB
    BadImage85.vi ‏36 KB

    Yes, I was able to see this trouble as well. Checked in different versions (2010 and 2012 x86/x64). But was unable to re-create this VI from scratch. It seems to be that Vision Control was broken in customization attempt where cluster with buttons was rearranged from vertical to horizontal position (may be in combination with saving for previous LabVIEW version).
    Time to time I do the same (for example save VI with vision controls from v. 8.6 to 7.1) and I've got lot of situations when "downgraded" VI cannot be opened or caused just crash, or broken. Something is wrong.
    Quick and dirty analysis of the given "BadImage.vi" shows that the problem with refreshing is present. LabVIEW tries to refresh this control continuously.
    In Process Explorer we can see one thread with 100% CPU load (overall 20-25 percent, because I have 4 CPUs):
    In Call Stack we may see DrawImageControl function which is called from niviswnd.dll.
    Well, load this stuff into debugger, set breakpoint and see - this function called continuously:
    called somewhere from SetPIClusterPartSize from LabVIEW.
    I don't want to go deeper into call chain analysis (anyway makes no sense without source), but short walking in debugger shows that messages continuously fired:
    Check it with Spy:
    There are thousands WM_PAINT messages which continuously sent to the Window with this weird control. Looks like attempts for update, but due some internals errors this called again and again.
    The messages queue is full with WM_PAINT - therefore LabVIEW is "unresponsive" - context menus cannot be shown, dialogs cannot be closed, slow reaction, etc.
    Sorry for slightly off-topic above, but may be this will be helpful for NI's engineers for further investigation.
    Andrey.

Maybe you are looking for

  • How do I import video from my canon vixia hv40 into imovie?

    How do I import video from my canon vixia hv 40 into imovie?

  • Battery Problems after Itunes 7.0 andd ipod update 1.2

    Hi folks I too am having problems with the new updates for Itunes and Ipod updates... I have a 30 gig video Ipod...Did the update, and everything went fine as far as updating the ipod and itunes....Except now I only get barely 7 hours of audio playba

  • Microsoft SQL Server 2012

    Is there any limitations in regards of CAL with Microsoft SQL Server 2012 developer edition?

  • Dynamic Data: Dynamic Table

    Hey guys, probab;y a simple solutino, but after trying a few extensions, they either don't work, or I get an error saying can't apply as it would require changing code from a template. so how does one alternate the row colors of a dyanamic table with

  • Mass change for DMS

    Hi All, Is there any standard TCode for Mass changes for document managmen? Regards Varma