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 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 thanksHi 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 -
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?
thxuser3930585 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 ChenGood 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
JPHi 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
-
Hello , I have purchased an itunes card 2 weeks ago and it doesnt work then we had to go back to the store to get a new one from them. And No One Has Answered Me IN 5 Days Please HELP ME
-
Error while transferring Vendor master from R/3 to SRM
Hi, I have done the following. R/3 . 1. Vendor creation in Xk03 for the organisation SRM. 1.Created a vendor group in PPOCV_BBP Entered the following in BBPGETVD. 1. Logical system 2.Vendor 3.Purchase organisation. 4. tice mark in address comparion,
-
When was the latest version of itunes released?
When was the latest version of itunes released? i opened itunes and it said a newer version was available but im not sure if its the same one i have? i have 6.0.4.2 thanks -billy
-
Need to exclude leading zeros from ACCOUNTS
Hi I have certain accounts like this in BI - BT0500000181. i want to exclude the leading zeros in between the code and should display in BPC like BT05181. is there any way out to convert this. I think we can use java script in conversion file for som
-
UNIX command to format or delete all content on Flash Drive
Need a unix command that will allow me to quickly remove all contents or format a flash drive. Computers will be OS X based and I would have to batch process them. I'm just looking for the command itself, then my other guys can automate them Thanks