Bayer U16 2D table

Hello

I use a pilot of the custom camera that gives me image data as Bayer formed in a U16 2D table data. I wonder if I can use the function "IMAQ Bayer to RGB" with it.

I would be very grateful for the advice.

Thank you

D. Ackermann

Yes, this VI allows you to do exactly that:
http://zone.NI.com/reference/en-XX/help/370281U-01/imaqvision/imaq_bayer_to_rgb/

You must use ArrayToImage on the image source first, of course.

Eric

Tags: NI Hardware

Similar Questions

  • Best way to reduce a large table 2D

    Looking for best practices LabView on it. I have a 5000 x 5000 U16s 2D table and I would like to remove/delete lines even and then all of the same columns. I enclose a drawing of what I currently use but looks about 15 seconds to accomplish. Any better approach?

    Here's what I had in mind (probably need a few tweaks).

    Note that "unintersting" lines are not even affected and all works in place.

  • ASCII table U16

    How can I convert an ascii string, in a table of U16

    The string I have is: 0123400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

    It must be poured into a table, and the table should read:

    [0] 8961

    [1] 64

    [2] 0

    [3] 0

    [4] 0

    [5] 0 etc.

    Anyone have any ideas?

    Now that I got the road work, back to this...

    Here is a quick and dirty solution (assuming we have a string whose length is divisible by 4):

  • IMAQ: 'image at the table', directly related to the 'picture in picture' seems to have a pb with U16

    Hello.

    I use the two screws 'ImageToArray' (ITA) and 'ArrayToImage' (ATI) to image processing and I have noticed something strange I want to share with you.

    I am acquiring data from a GiGe camera 16bits. If I wire the output image from the camera to the ITA VI, and then I wire the output of ITA directly at the entrance of ATI, I can't return the image!

    Look at the files that I have attached. Image2 should simply display the same image as Image1, shouldn't it...? But it doesn't!

    I missed something, maybe...?

    Is anyone have an explanation/solution?

    (If it could be of some importance, please note that the dynamic camera is 12 bits. But I don't think that changes anything if it was 16-bit "full"...)

    For your information, if I try to do exactly the same with the 8 bits of data, then it works perfectly fine. When the camera returns only if 16-bit data there is a pb.

    Best regards.

    Luke

    I think that your camera deliver I16 image, but you use U16 - so the matrix is empty and you don't see anything.

    Try instead to use I16:

    (and check your image types and control outputs error)

    Andrey.

  • little binary string in array (of TCP read) to the table of Boolean LV (and back)

    I would like to ask what is the easiest way for the next conversion? We use aTCP Read function to read an incoming binary string to a S7 API using LabVIEW. We know that LabVIEW stores a Boolean value to 8 bits. The incoming binary string contains 14 bits (representing 14 indicators of status). What is the best way to convert these values of 14-bit LabVIEW Boolean table?

    In addition, we send a LAbVIEW Boolean table in the PLC data (to write a TCP) string containing status bits.

    Thank you very much!

    Martins wrote:

    This 30 bytes contains some data more, including 14 bit flags (size is 14 bits). Since the PLC cannot put 'together' (16-bit) words at his side before sending data TCP, 14 bits is padded with 2 bits holding no valueable info.

    Then the solution is simple.  Take your 2 bytes and unflatten in a U16.  Then use Boolean table number.

  • MODBUS U16 to simple, back from setting in the form

    Hello everyone, I am working with a couple inverters Kollmorgen that give and receive data via MODBUS. Using the LabView user's library, I had no problem in the reading and writing of data on their part (assuming I do not more often than 10 times per second). However, I am having some problems with the data format. Kollmorgen has not settled exactly according to the standard and therefore some values are 32-bit registers, some are 64-bit and to initiate, some are signed and some are not; they are all however, delivered in 16-bit of size segments by the function 'read record keeping. Right now I'm only interested in the 32-bit signed value variety.

    While I am able to read and I am sure I read the values I want (I can change the value of Kollmorgen workbench and LabView reflects the change of value), the output does not much sense. For positive values, it is fairly intuitive, like the first U16 (I read an array of 2 values U16) is always a zero, and the other is a x 1000 of what positive real value is. So if I read for example a current 3.5 amps, the first U16 is a zero, and the second is 3500; If I read 1.23 amperes is zero and 1230, and so on.

    However, when reading negative values, I failed to see a pattern, so that it almost always go to a pretty high value (65 324 or something) in the two registers in low as - number 2. I already tried several data manipulation of the methods listed here, including:

    -Conversion of type one in 2 U16 table, then return via join numbers

    -Convert the number in binary, binary table then back to number

    -Force in single, then using convert in I32 and divide those

    So far, no luck, anyone had a similar experience or has worked with these players in the past? Also can't find much information on the documentation of Kollmorgen and their website States that the MSB is sent as the first registry on 64-bit size records. No doubt the positive data format gives a clue, but so far no chance on guessing it.

    Convert an I32 U16 table.  Divide by 1000.

    In the opposite direction.  Take your floating point number.  Multiply by 1000.  Constrain to a U32.  Convert to an array of U16.

    EDIT: Don't mess with the fixed Point.  This is for very special cases, usually involving the FPGA.

  • convert table Bool U64

    Hey all,.

    Need help!

    I want to convert a Boolean table unsigned 64-bit number?

    I couldn't find all the built-in functions in the palette of the conversion.

    Table of Boolean number U8, U16, supports the conversion... U64.

    But Boolean Array number takes in charge only U32.

    Y at - it another way to make this conversion.

    Thank you

    Gramy

    On the table of Boolean to the node number, right click and select Properties.  From there, you can specify the type of output data.

  • Table 2D-fixed points allocated to the amount of disk space!

    Hello

    I'm trying to create a 2D table file that will be saved on a real-time target. And should be read by my application in real time.

    To create a file as small as possible I have it recorded in fixed point format. (integer 16 bits 6 bits)

    The table size is 1024 X 1024 data points which is ~ 1 M data.

    If I save the file to the DBL format I expect to get 8 MB (each data point is represented by b bytes) of the file - and that's what I

    If I save a U16 format, I expect to get 2 MB file - and that's what I indeed.

    I waited get a 2 MB file with fixed point format-, but as you can see in the screenshot - I did not!

    No explanation why the checkpoint file is fixed so great?

    Thank you

    The FXP is 64-bit internally.

  • How to subtract two table of 1 d (uint16) same size

    I need to remove two 1 d (uint16) same size table. with output as follows...

    x - y = result (EXPECTED)

    5 - 2 = 3

    4 - 0 = 4

    0-4 = 0

    2 - 3 = 0

    If the difference is less than zero value must be zero. Currently, if I use the digital subtraction... I get...

    x - y = result (OBSERVED)

    5 - 2 = 3

    4 - 0 = 4

    0-4 = 4

    2 - 3 = 1

    Thank you

    Hello rajxabc,

    I don't know why you expect whole math unsigned to produce a 0 in the script show you below.  The U16 ends actually spent 0.

    Thus,.

    0-1 = 65535

    0-2 = 65534

    0-3 = 65533

    If you want to change the standard behavior of the unsigned integer math, you need to create a special algorithm for this, produce something like:

    There are a number of ways that you can accomplish this, but at the end of the day, I don't know that I would be the label none of them "expected."

  • LabVIEW FPGA: Problem compiling look-up Table

    Current versions of software:

    LabVIEW 2014 SP1

    LabVIEW FPGA 2014

    Xilinx Vivado

    I'm having a huge problem in trying to compile my LabVIEW FPGA code.

    Some recall of the code:

    It's all in a SCTL.

    I am streaming in a FIFO DMA and comparing it with the values previously stored in the shift registers (which are initialized to 0 at the start of the loop) in the SCTL.

    The results of the comparison are then piled into a U16 and loaded into a lookup table (I use the LUT - 1 d), and I'm so help this LUT to decide what value will be charged to travel to record for the next iteration of the loop, which, in any case, would be either the current values of the flow, or the post previous registry value.

    (It's a triage loop)

    I am able to run very well in simulation mode code, but when I try to compile, I get this error:

    "The selected object has a built-in shift register that makes the output on a particular loop iteration correspond to the entries in the previous iteration."

    Connect the outputs of the object directly to a minimum number of nodes of Feedback or uninitialized shift registers. You cannot connect the outputs to another object.

    See using LabVIEW for more information on the objects with registers embedded offset. »

    Someone at - it ideas why this happens, and what might be the possible solutions?

    I'm tempted to break it down into separate loops, but I prefer not to because it is now a loop (and working in my simulation).

    I found my problem.

    Any time that a LUT is in a chain shift register, it cannot:

    1. be part of a string of shift register that has a variable initialized

    2. follow-up to no decisive structure, like a box structure.

    I just moved the position of LUT and it works.

  • on the two table of combing in one

    Hi all

    I post a fight may convert an array of integer to a char array (byte) and I got a solution already http://forums.ni.com/t5/LabVIEW/how-to-display-char-code-properly/m-p/2596087#M780368

    However, I have another problem while dealing with a table of enouther type U16. I would like to extract the byte top and bottom numbers (U16) stored in the array. I have extracted the high and low byte for each number U16 and convert them as a tank, a string concatenate them. Repeat this process for each element of the array in order to get a large chain where each element is a tank for the high and low byte. My code is inserted as follows

    It works fine, but I'm on speed. Is that any other way to do it fast and do not use the loop (in one case real, I will treat large enough table several times, efficiency is a problem). Note that the array of high and low bytes extracted from the original with the module Split number.vi array, but how can I combine these two array in a code with data arranged in a top-down-up-down...? Thank you.

    Simply use a Type Cast on the U16.

  • Bynary number table

    Hello

    I'm developing a program that read the port series, capture packets, extract payload, convert the data in the payload and display. Now, everything up to that the last steps works very well. The problem is with the conversion of an array of bytes to be the number. In serial communication, packages are unsigned 16-bit integers (which means basically a 2-byte in the payload). Now the problem is how to convert these two bytes to an integer unsigned 16-bit in LabView. If I just try to convert the byte array using converter U16, it generates a table 1 d of 16-bit integers, unsigned while I need one. Is it possible to do this?

    For example, if I have two bytes 0 x 02 and 0x8C and try to convert them into a 16-bit unsigned integer using the U16 converter, it generates a table [2, 140] while I need to be converted into just 652.

    Table of index allows to remove the two bytes (it can be extended by dragging the bottm up to get two outputs).

    The thread of these two bytes to the join and you're ready to go.

    There are other ways, but I'll let others speak.

    Ben

  • Table of cluster of arbitrary type

    Hi all

    Is it possible to generate an overall picture about the next feature?

    1. each group element of the array will be of a different type

    2. According to the code, each element could be a different type of data at different times.  For example, the cluster to array [0] will be a string when the user input is one, and array [0] will be a U16 if user input is two.  The index for a particular type of data is arbitrary.

    Let me know.  I'm writing a Subvi, which will get a picture of the U16 convert the table into a picture on single, double, string, U16, U32, etc..

    Yik

    Yes.  Use an array of variant.

    The variant you can turn your data type to store in the array in a variant.  Variant of data allows you to convert the variant to the original data type, simply specify the type of data.

  • Convert 8 bit RGB Bayer Image in Monochrome

    I'm looking for a way to perform an edge detect algorithm on the camera sensor image which was released in 8 bit RGB of Bayer (cannot specify the monochrome output sensor).  The image is read on the gray u8 IMAQ camera, but then the edge detect does not work because of the rasterization of bayer.  After the conversion of bayer in a u32, vi of detection errors color image edge by saying the image type is not supported (logic).  I wonder if there is a function that would allow me to take the image RGB U32 and then convert it back into an image in grayscale which has no pixel with the raw data read problems and will work with the edge detection algorithm.

    If there is a function to convert an image IMAQ from color to grayscale so I could make the edge detect would be great (I didn't see one).  I think it would be a common place because many functions run only with images in grayscale.  If a function does not exist, what is the best way to go on the conversion of the image using LabVIEW.  I'm not an image of expertise so I'm not sure of the best way to go about it.

    Thanks for your help.

    Use IMAQ Convolution with a 3 x 3 table.  The elements of the array are numbers that I entered previously.  The convolution function only like arrays of odd sizes so that the image does not move during the convolution.  You can ignore the idea of 2 x 2 - I think it is cleaner.

    So, to summarize:

    1 acquire U8 Bayer image as grayscale image.

    2. apply the filter convolution 3 x 3 to remove artifacts from Bayer.

    3. use the Sobel filter to find the edges.

    4. use IMAQ quantify for the average or STD dev of intensity.  It is a very good measure of the development.

    Now to confuse you even more: you can speed up the extent of the development if necessary by reducing the resolution of the image.  You must insert a step after 2 (or instead of 2) allowing to extract from every other column and row of the image.  The focus indicator always follows the development very well, and treatment is a bit faster.  I used this trick a few years back, but it is perhaps not necessary on modern computers.

    Bruce

  • hexadecimal string in hexagonal table

    Hello

    I have a hexadecimal string that contains the address then the word:

    8E39 0

    1 60E3

    1 B 2

    3 42

    4 100

    5 0

    I'm trying to create two tables, one with the address in two bytes and the other with the word of four bytes, so that I will eventually:

    8E39 00

    01-60E3

    001 B 02

    03-0042

    04 0100

    05 0000

    Any help will be greatly appreciated!

    Thank you

    hiNi.

    You can also directly use 'read the worksheet file' (but you will need to convert later to U16).

    hiNI wrote:

    I'm trying to create two tables, one with the address in two bytes and the other with the word of four bytes, so that I will eventually:

    You said you wanted two tables, must still be decided on two columns.

Maybe you are looking for

  • South Africa streaming news

    Is there a new South Africa streaming app?

  • Intel advanced 6235 N does not not in Hp Envy m4 1115dx - 8.1 Windows

    Not happy with the Ralink 5390 card wireless in my laptop, I decided to upgrade to a bluetooth card 2 x 2 in my address oem. After installing the adapter on my laptop, I discovered that the bluetooth works, but the wifi part would not, nor with windo

  • Need to uninstall the old version of XP and install XP Media Edition.

    I have two computers - an a new laptop with XP Media Edition 2005; the other an older desktop with XP only. When I boot to the desktop, I always get a message that either a single file is missing or damaged. After a couple of reboots, it usually mana

  • Duplicate data from the proxy server

    Hello I am working on a project and use Google map to mark several spots in a city like cab or hospital, this thing I ask a URL with 3 longitude latitude parameter and miles. Latitude and longitude will describe your position and back-end, it will ge

  • BBM BBM no connection error

    Please help with kindness. For 2 days now have not been able to open a session open BBM on my phone. It gives error opening BBM later to restore and the connection has failed. In addition, can't access the app world. Help please. Am using Q5