How to use IMAQ extract color panel in a LabView file?

I want to change a color image into a greyscale image. Therefore I want to use the function IMAQ extract color panels but I don't know how to insert it in my LabView application.
Please, can anyone give me some advice ?!!!
Thx, Birgit

Birgit,
If you want all of the color planes, you can use IMAQ ExtractColorPlanes. Allocate an 8-bit image for each of the color planes. Wire the original color image and each of the 8-bit images for the color planes on the left and bottom of the vi. The outputs on the right side will be the same images, and they will each contain the desired color plane. The input at the top of the vi controls which color planes are extracted (RGB, HSI, etc.) Grayscale will probably be the I plane in HSI.
If you just want a grayscale image, use IMAQ ExtractSingleColorPlane instead. Wire the color image to Image Src, and wire an 8-bit image to Image Dest. Select the color plane using the top input, and it will come out on the right side.
Bruce
Bruce Ammons
Ammons Engineering

Similar Messages

  • How to use downloaded Adobe color theme (.ase) in Photoshop cc?

    How to use downloaded Adobe color theme (.ase) in Photoshop cc?

    I can confirm this functions but there is no indication it's been successful and the swatches appear in the Swatches panel, *not* in the Libraries panel where I would expect them.  My issue is that IMO this should not even be an issue, because a palette created on color.adobe.com should just show up in PS CC unless I'm not understanding the intended behavior.
    Anyone?

  • How to use IMAQ Bayer To RGB ?

    Hello everybody.
    Could you please tell how to use IMAQ Bayer To RGB. I read from help that we need Bayer Parameters. But in help haven't structure of Bayer Parameters. I find any example of IMAQ Bayer To RGB and Bayer Parameters in Labview
    Thank you for reading my poor english and help me !
    Solved!
    Go to Solution.

    Hello,
    What kind of camera bus are you using? (Camera Link, GigE, FireWire, etc.)  When you acquire an image in MAX does it appear to have the bayer grid?  Have you tried adjusting the bayer color of the camera in MAX?
    There are two examples shipped with Vision Acquisition Software that show how to perform Bayer decoding one for NI-IMAQ and the other for NI-IMAQdx.  If you open up LabVIEW's example finder by going to Help >> Find Examples  you can search for Grab With Bayer Decoding.vi or Grab and Bayer Decoding.vi.
    Regards,
    Isaac S.
    Applications Engineer
    National Instruments

  • How do I change the color of a scanned tiff file.  It is currently a black image and I want to change the color.

    How do I change the colora of a scanned tiff file.  The image is currently black and I want to change the color.  Thank you.

    You can use the Temperature slider in the Adjust Image pane to apply a tone.
    Walt

  • Req any examples of how to use a USB midi controller​/keyboards with Labview TIA

    Req any examples of how to use a USB midi controller/keyboards with Labview TIA

    Hi,
    To access the MIDI ports you will need to call the Windows SDK. To send MIDI commands is relatively easy, here is an example that shows you how to send data to a MIDI controller or keyboard.
    As far as input goes, this is the hard part. There are a series of functions that you need to call to open up the device, set some buffers and and possibly a callback to get notifications on the incoming data.
    Reading MIDI data will not be an easy task, your best bet will be to implement this in a DLL and call that DLL in LabVIEW, there should be some code available o the web.
    = "http://msdn.microsoft.com/library/default.asp?url​=/library/en-us/multimed/htm/_win32_multimedia_... is a link to the Windows multimedia functions that you could use for MIDI input.
    Let me know if you have any further questions.
    Regards,
    Juan Carlos
    N.I.

  • How to extract 64 bit data from imaq image using IMAQ Extract VI

    I have LV 8.5.1, Vision 8.5 and need to extract 64 bit data from a 64 bit image and I get the "invalid image" error while using the IMAQ Extract VI.  What version of Vision do I need to allow me to do this? 
    Currently, the work-around I have...
    1) convert the image to 32bit
    2) use the ROI tools I to get the rectangle data I need
    3) then go back to the original image and the convert the image to a 64 bit array
    4) take the rectangle data to extract the data needed out of the 64 bit array data.
    klunky but it works.  I would think that the IMAQ Extract tool should allow me to extract the 64 bit data but it doesnt... forces me to 32 bit.
    suggestions?

    steve05ram360 wrote:
    awesome, that does work. 
    Attached DLL slightly corrected and should be OK also "in place" when Dst is not connected like original IMAQ function. Hopefully it works properly now. By the way all IMAQ types are supported, not only U64.
    Andrey.
    Attachments:
    ADVExtractDLL.zip ‏9 KB

  • How to use IMAQ to read out custom information in .tiff file?

    Currently, our lab use AFM to scan sample surface. The result was saved as .tiff file.
    Here are lots of information stored in the .tiff file, such as scan range, tip offset...
    But when I try to use IMAQ to load such .tiff file. I just get the image, and some information such as x resolution, y resolution, calibration.
    Is there some way to use IMAQ tool to extract all the information I need from .tiff file?
    Thanks a lot!

    I tried to use read text file vi. But what I get is some meaningless characters. Just like this.
    II* Ô   ô                                                                                 ¥ÂZEÃÒZE    ª}gDó» ‘N‘>test3                                   Mesuared by JSPM-5200                                                                                                                                                                                                                                            ?  Ù Ù :/  
    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ                       ÿÿÿÿ                    «ÊDÚ¢I@                {.A                   ?    @  ºB   @ PCG PCG  €?           €?jè@  €? øâE              SPM                                                                                                                                                                                                                                                                         ý?F                                                                                                    ÿÿÿÿ  ÿ ÿÿUÿþ    þ  þ þ 𪠠   
    "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~€‚„†ˆŠŒŽ’”–˜šœž ¢¤¦¨ª¬®°²´¶¸º¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØÚÜÞàâäæèêìîðòôöøúüþ )19AJRZbjs{ƒ‹”œ¤¬´½ÅÍÕÞæîöÿ )19AJRZbjs{ƒ‹”œ¤¬´½ÅÍÕÞæîöÿ                               ªÿ ÿU ÿ ÿÿ ªÿÿ þþ  þ þ`  þðªŒþþ  
    "$&(*,.02468:<>@BDFHJLNPRTVXZ\^`bdfhjlnprtvxz|~€‚„†ˆŠŒŽ’”–˜šœž ¢¤¦¨ª¬®°²´¶¸º¼¾ÀÂÄÆÈÊÌÎÐÒÔÖØÚÜÞàâäæèêìîðòôöøúüþ )19AJRZbjs{ƒ‹”œ¤¬´½ÅÍÕÞæîöÿ                                                              ª ÿ ÿª  ÿ ÿÿUªÿ  þªPþ  þþþðª þþ  
    Why is that ?

  • Using IMAQ Extract on a Calibrated Image

    Hello,
    I'm a student new to Labview working on a project to get a web cam to identify and analyze the state of a checkers game board. My VI calibrates the image of the board to correct for distortion and to fit it to its real world coordinates. At this point I want to extract the game board from its surroundings to make the rest of my analysis easier. However, if I do this I end up voiding my calibration. Is there a way that I can make a new image based on my calibrated image so I can use the extract VI or do I need a new approach? 
    Thanks for your time!

    It sounds like you're not passing the calibrated image to the extract VI correctly.  The extract VI requires a new memory allocation be made and then copies the source image to that location.  It then creates a new image at the new memory location with only the extracted portion of the original image.  If you don't handle your memory locations correctly, you may be overwriting your original image instead of extracting from it.  Make sure you are allocating a new memory location by calling a new IMAQ Create VI (and using a different string input) and feeding that into the Image Dst input of the IMAQ Extract VI.  This should ensure that you save the calibrated image before running the extraction.
    Regards,
    Chris L
    Applications Engineer
    National Instruments
    Certified LabVIEW Associate Developer

  • How to use DSSS or FHSS sequencing methods in LabVIEW using modulation pallete

    Hi
    I would really appreciate it if you give me an example how to use DSSS or FHSS using modulation pallete. I searched for any example or tutorial for spread spectrum techniques but I couldn't find anything useful. even a very basic vi might be really helpful for m
    Many thanks

    Hi en99,
      apologies for a very late reply and I'm sure you've figured this out by now anyway but just in case, here's a quick and dirty example of using dsss with a PN sequence and QPSK.
    I'm not re-applying the matched filter here since the de-spread requires a tight alignment to the original timings (if you de-spread the wrong chips then you won't get your symbols out correctly so you do need some level of synchronisation).
    Have a play with the Eb/No and the filtering from the front panel - you'll see the un dsss'ed spectrum narrow up as expected with some level of filtering, but the aim of dsss is to spread that out.
    Hope this is useful.
    Thanks
    Sacha Emery
    ATE Systems Engineer (NIUK)
    // it takes almost no time to rate an answer
    Attachments:
    dsss comparison.vi ‏49 KB
    example dsss snippet.png ‏119 KB

  • How to use preprocess​or directives (#define) in C++ header file with LabVIEW 8.2

    I have a C++ header file that contains around 2000 preprocessor directives:
    #define MEM_1   0xC
    #define MEM_2   0xD
    #define MEM_3   0x18
    I want to be able to "access" these memory offsets by identifier name (MEM_1) in my LabVIEW program like I would in a C++ program.  I do not want the overhead of parsing through the header file and storing all the offsets into an array or similar structure. 
    I've written a simple Win32 console program to return the memory offset given the identifier (see code below), and created a DLL to use with my LabVIEW program.  In the console program, you notice that I can call a function and pass in the identifer name, and get the offset back correctly:
    getOffset(MEM_1);
    In LabVIEW, I was hoping to be able to pass in the identifier (MEM_1) but was unsure what datatype to use.  In my C++ code, I defined the parameter as an int.  But in LabVIEW, I can't enter in MEM_1 as an int.   Can someone advise on how to do this?  Or if there is an alternate way to use #define's from external code inside LabVIEW?
    #include "stdafx.h"
    #include "scrmem.h"
    #include "stdio.h"
    void getOffset (int var);
    int _tmain(int argc, _TCHAR* argv[])
     getOffset(MEM_1);
    canf("%d");
     return 0;
    void getOffset (int var)
     printf("The address of MEM_1 is %x", var); 

    kaycea114 wrote:
    Hi,
    Where do you think I should use the string? 
    The way that getOffset is currently defined in the DLL, I have to connect an integer input into the LabVIEW function.  This prevents me from entering in: MEM_1 as the input to the LabVIEW function.
    Are you suggesting that I change getOffset to receive a String parameter ("MEM_1")?  Does that mean I need to do a string compare (line by line) through the header file to get the offset?  It seems like doing this search through the header file would degrade performance, but if that's the only work around, then I'll do it.
    Please advise.
    Well, what you want to do is indeed entering a string and getting back the assigned integer. That is what the C preprocessor is doing too although there it is done only once at the preprocessor stage of course and not at runtime anymore. But LabVIEW is not a C preprocessor.
    What you did so far seems to be to define getOffset() that accepts an enum that needs to be created from the C source code to then return the assigned constant. That's of course not very helpful.
    And writing a VI that could parse the C header file and create a name/constant array is really a lot easier than doing the same in C. You don't even need to parse the file each time again, but can instead cache them in an uninitialized shift register (LV2 style global).
    Even more easy would be to create from that data a ring control using property nodes and save it as custom control and voila you have the most direct lookup you can get in LabVIEW and it works just as comfortable as using the define in C code. It would mean that you need to seperate your header file possibly into several different files to only get related constants into the same ring control, but that is easily done.
    Rolf Kalbermatter
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • How to use old archieve logs with a new control file

    Environment:
    ORACLE_BASE="/export/home/oracle"
    ORACLE_HOME="/export/home/oracle/product/8.1.6"
    NLS_LANG=".UTF8"
    2 partitions:
    i) /data1 -- contains important datafiles (OS striping on 3 hard
    disks)
    ii) /export/home -- contains the oracle program, and SYS/SYSTEM
    datafiles
    Problem:
    -/data1 cannot be read/mount (damaged)
    -oracle failed
    Action Performed:
    -reinstalled OS
    -mount /export/home successfully (all oracle system files,
    instance init files exist)
    -/data1 is an empty partition
    -created the oracle user, and its groups
    -chown recusively for the $ORACLE_BASE directory
    -set all the oracle environment variables
    -attempted to start the instance, but failed due to a control
    file was
    missing
    -since control files were set to be mirrored, i copied a control
    file somewhere
    from /export/home/oracle/oradata/<SID>/control1.ctl to
    /data1/oracle/oradata/<SID>/control2.ctl (i.e. have them back to
    their original locations)
    -the instance failed to start as well, since the datafile set in
    the control files couldn't be found
    -this forced me to re-create the control file... b4 i re-create
    a new control file, i backed up the old one
    -once the control file was created, the database can be started,
    but, to oracle, all achieve log information are lost (although
    the achieve log's physical files r still there)
    -i imported the important data from a dump file that was
    exported a week ago b4 the system failure
    -since we r using the new control file, the redo logs switch
    contains no achieve log information that the old control file
    has, so running "recover database" doesn't do anything
    Purpose:
    since the dump file is a week old, i'd like to get the data
    after my last export and b4 the system failure. the database was
    run in arhieve log mode, how can i recover those data with the
    new control file
    Question:
    -how can we create a new control file that can drive the old
    achieve logs?
    -can we convert the achieve log data (.dbf format) into text
    format?
    -can we still use the old control files to start the database?
    -what's a suggested solution if we'd like to re-construct the
    database up to the moment b4 the system failure in another
    server?
    thx

    user3930585 wrote:
    I am in an unenviable position, with an unsupported database.
    We are running Oracle 9i on Windows XP. We are upgrading soon to Oracle 11g on a newer platform, but need to get our development environment working first.
    We lost a system that was running our development database without having a database export. The C drive was placed into a new system as the D drive.
    I have loaded Oracle 9i on the C drive, but I have been unable to determine how to point it to the existing data files on the D drive. My search skills may be the limiting factor here...
    We cannot simply load the drive as C, since the hardware is different.
    What are the steps to point the new database software at the data files on the D drive? Or, how do I copy the old data files into the new Oracle Home and have them recognized properly?
    Are you stating that you don't know how to use COPY command?
    Can you recreate same directory structure on new C drive as exist on old C drive?
    Can you then drag & drop copies of the files?

  • How do i match a color exactly from an .eps file?

    How do I match a color in pages exactly from a jpg or eps file?

    The Color Selector has an eyedropper tool, the magnifying glass next to the color field at the top. Click on it and anywhere on screen to pick up a color.
    Why not just open the eps in Pages, which will convert it to a .pdf?
    .eps/ai/pdf files may have spot colors and they can't be matched exactly in Pages but will print through from the .pdf file as a separate plate.
    jpegs do not have an "exact color", they are made up of a cluster of different colored pixels.
    Also there will be differences depending on whether the color you are selecting is RGB or CMYK.
    Peter

  • Idea about how-to using 'Agilent Wireless Test Manager' interfaces in Labview ?

    Hello everyone,
    I am not sure whether it is appropriate to post this here.  
    Currently I got a Wireless Test Manager CD(Agilent E6560A) and is trying to convert some functionalities inside class 'cdmaTXMeasTests' into labview.
    I am doing the 'code domain power testing' module with labview, which is well done in that 'cdmaTXMeasTests'.
    I am wondering if any one could provide me some idea how to use that 'cdmaTXMeasTests' in my labview without rebuild the wheel.
    ( I am not sure whether that would work,  Are the libaries used by wireless test manager a  ActiveXDLL that could be used by labview ? Or there is some other way to do it or not?)
    Any idea is well appreciated,
    +Kunsheng Chen

    Good Afternoon Kunsheng Chen,
    It seems like you are trying to port your DLL.  Rather, I would suggest using a Call Library Function Node (right-click the Block Diagram, Functions>>Connectivity>>Libraries & Executables>>Call Library Function Node).
    From the Agilent website, this is a C dll so you will be able to access it using this VI in LabVIEW with no problems.  You might want to contact Agilent to see if this DLL has ActiveX components.  Alternatively, you can simply browse the list of ActiveX components on your computer.
    The following links may provide some useful information for using a DLL in LabVIEW.
    An Overview of Accessing DLLs or Shared Libraries from LabVIEW
         http://zone.ni.com/devzone/cda/tut/p/id/3009
    Call Library Function Node
         http://zone.ni.com/reference/en-XX/help/371361E-01​/glang/call_library_function/
    Using Existing C Code or a DLL in LabVIEW
         http://decibel.ni.com/content/docs/DOC-1690
    Regards,
    Charlie Piazza
    Staff Product Support Engineer, RF
    National Instruments

  • How to use g++ to build shared libraries for labview in linux?

    does anyone knows if it's possible to compile a shared library in linux with g++ that could be recognized by labview?
    thks
    JP

    Hi JP,
    Yes you can use g++ to build shared libraries that labview can use. You'll want to give your C++ library a C interface. This is really common practice. You can do this by simply declaring functions as 'extern "C"'. Here is a link with more information:
    http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-30.8
    I've personally worked on projects that do exactly what you want to do.

  • How to use "IMAQ ComplexPlaneToImage"? (Display after "IMAQ FFT")

    Hello,I use two ways to display a image after "IMAQ FFT":
    (1). Input a image->IMAQ FFT->Windraw(display);
    (2). Input a image->IMAQ FFT->IMAQ ComplexPlaneToImage(extracting magnitude) ->Winddraw(display).
    The two results are much different.
    I want to know what the two displayed images(especially in the second way) mean and where
    "IMAQ ComplexPlaneToImage" usually used.
    Thanks for your help!

    Hi Dan
    I am having some questions regarding the FFT Phase of the FFT with IMAQ ComplexPlaneToImage.
    From the posting below you mention that the phase is:
    Phase = Real/Magnitude.
    I am using the function ComplexPlaneToArray to see the value I am getting from ComplexPlaneToImage.
    Usually the phase is the inverse tangent  (Imaginary/Real). If we are using the Real and magnitude it will be the inverse cos(Real/Magnitude)
    I tried the above senario to verify the phase value we are getting from ComplexPlaneToArray.
    However, I get not get the value you are displaying in the phase  (ComplexPlaneToArray).
    How can I verify  ComplexPaneToArray ( phase) with the various
    ComplexPaneToArray(real)
    ComplexPaneToArray(magnitude)
    ComplexPlaneToArray(imaginary)
    I attached a phase fft.vi as an example of my issue.
    Regards,
    Corinne
    Attachments:
    phase fft.vi ‏153 KB

Maybe you are looking for