I need a "Channel Combiner" node

I'm currently working through Steve Wright's book, Digital Compositing for Film and Video. He pitches this book as "application agnostic" - meaning you should be able to apply the techniques to most any compositing packages: Shake, AE, Digital Fusion, Nuke, etc. Steve has moved on to using Nuke nowadays but back when this book came out he was using Shake. So, to best play along, I've been using Shake to follow the book. (I had been wanting a Shake refresher anyway, as I haven't played with it in a couple of years.)
So anyway, there's a section that talks about despilling, or more precisely, in the exercise I'm hung on, UNspilling. I have most of his nodes figured out, except for the end. He's basically suggesting that you break out the individual color channels into separate nodes, perform some operations, then re-assemble the RGB channels into one image again. This last part has me stumped!
What I need is a node that basically says, "take the Red channel from this image, take the Green channel from this image, and take the Blue channel from this image". I just cannot figure it out. I'm pretty certain all my prior nodes are fine. But this final channel summing node is alluding me. A simple diagram I mocked up might look like this: (Using Mr. Wright's supplied images here.)
I found this article that makes explicit mention of the magical unspill node tree. In fact, they've included a diagram of their tree. However, it's so small I can't make much out of it.
Hopefully someone can help me unravel the final piece to this puzzle. I've killed a lot of time trying different combinations of other nodes. All to no avail.
FWIW, here's a copy/paste of my current script as exists: (minus the actual 'greenscreen.tif' file that I'm using to work through the example.)
greenscreen = SFileIn("./greenscreen.1-48#.tif",
"Auto", 0, 0, "v1.1", "0", "");
blue = ColorX(greenscreen, b, b, b, a, z);
green = ColorX(greenscreen, g, g, g, a, z);
red = ColorX(greenscreen, r, r, r, a, z);
average_RB = Mix(red, blue, 1, 50, "rgba");
spillmap = ISub(green, average_RB, 1, 100);
blue2 = ColorX(spillmap, b, b, b, a, z);
green2 = ColorX(spillmap, g, g, g, a, z);
red2 = ColorX(spillmap, r, r, r, a, z);
blue_scale = Lookup(blue2, JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,1@1),
JSplineV(x,1,0@0,[email protected]), JSplineV(x,1,0@0,1@1));
green_scale = Lookup(green2, JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,[email protected]),
JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,1@1));
red_scale = Lookup(red2, JSplineV(x,1,0@0,[email protected]), JSplineV(x,1,0@0,1@1),
JSplineV(x,1,0@0,1@1), JSplineV(x,1,0@0,1@1));
IAdd1 = IAdd(blue_scale, blue, 1, 100);
IAdd2 = IAdd(red_scale, red, 1, 100);
ISub3 = ISub(green, green_scale, 1, 100);
Ignore(blue_scale);
Ignore(red_scale);
Ignore(green_scale);
Hopefully what I'm looking for makes sense to someone out there.

Patrick,
I think the general theory is (something like) this:
The standard despill strategy is to build a green spill map, then subtract that from the green channel to remove the excess green from your shot. This certainly gets rid of some green from the shot, which is the goal. But since green is typically the brightest channel, this process can also darken the shot. Further, it can also introduce some hue shifts.
The unspill strategy is a similar but different strategy. Instead of subtracting the green you add red & blue. But this only works properly with the scaling node in between the individual channels. Since we're adding some red + blue, we don't want to pull out as much green as before. So we can't use our original spill map at "full strength" on the green channel, like we did with a despill process. The scale_RGB (lookup) node lets us adjust how much each channel contributes to the spillmap before it's final calculations. The addition of the RB channels only works because of the scaling node upstream. We'd scale green down and red/blue up. The exact proportions would depend on the specific shot at hand.
All in all, I think the despill vs. unspill processes are basically "Six Of One, A Half Dozen Of The Other". Different strategies to go at the same issue: removing spill.
But because of the scaling lookup node there's a little more adjustability with the unspill method.
Anyway, the specific scale_RGB values provided in the script-paste above are somewhat arbitrary. In the end, their real utility is twofold: you can use them to limit the green as you add red+blue - in the spillmap. Also they could be used to help "color" any fringing. If you have those tiny (annoying) edges on the key you might try eroding the matte to eliminate them. Not ideal. This scale_RGB node could, alternatively, be used to alter the colors of the fringe so that it mates up with it's background in a cleaner way. Color matching instead of matte eroding.
Hope that all makes sense. I'm still trying to get my head around most of this stuff...

Similar Messages

  • Need Task Channel Properties

    Hi,
    I need to create and send TCP messages which contain channel properties such as name, units, measurement type, max value, and min value.  I want my input to be one or more DAQmx task names and get the properties of the channels associated with these tasks.  I am using the DAQmx Channel property node but I am getting an "Error 200658 occurred at Property Node DAQmx Channel (arg 1)".  Can someone tell me how I can iterate through the channels of a task and get their properties.  I have tried setting the "Active Channels" property inside a loop which is fed by the array provided by  the "Channels" property in DAQmx Task property node but I get the same error.
    Any suggestions are appreciated.
        Thanks
        Michael

    Hi Michael,
    For the sake of neatness I just placed the NI-DAQmx task that I created in Measurement & Automation Explorer in as a constant.  You could use the NI-DAQmx VIs just as well to make your task.  I think the main issue was probably not going and picking an active channel as the first thing in your property node.  I hope this screen shot is clear on how you should go about getting these properties.  Let me know if you need further help with this issue.
    Have a great day,
    Michael D
    Applications Engineer
    National Instruments
    Attachments:
    DAQmxTaskChannelprops.JPG ‏55 KB

  • Need to create two nodes based on one condition in message mapping.

    Hi Experts,
                    In my mapping I have two different nodes. If my condition is true then only one node should be created otherwise both the nodes should be created.
    requirement is I need to print. one header before first item record and after every 200 item records.
    i.e I need to create header node if (item recordno) is 1 or (item recordno % 200) is 1. I have tried using this condition. But Iam getting all the header records( 3 headers for 600 items) in sequece and then all  item records (600).
    i want 1 header then 200 items , then again header followed by 200 items. so on.
    Can any body help.
    Thanks&Regards,
    REYAZ HUSSAIN

    Hi REYAZ HUSSAIN,
    as graphical mapping is "target field mapping" this is not possible. The parser for graphical mapping traverses the taget message from the first element to the last!
    You need another kind (ABAP, XSLT, JAVA) of mapping.
    Regards Mario

  • I need only to select node with "NodeName" (or/and Number) in a Java Tree

    I need only to select node with "NodeName" (or/and Number) in a Java Tree. Can anybody help me? Thanks a lot

    http://www.jetbrains.com/idea/openapi/5.0/com/intellij/util/ui/tree/TreeUtil.html
    http://www.tangoone.com/swf/docs/javadocs/org/swf/components/TreePane.html
    I fin SelectNode() function here - but I don't know how to connect these clases

  • What product do I need to just combine multiple pdfs into one pdf

    What product do I need to just combine multiple pdfs into one pdf. Thanks

    Are these files fillable forms?
    Could you need to combine more than 100 MB of files?

  • Why can't I find "Data Transfer and Memory " option in channel property node?

    Hi All,
    I'm trying to find some properties such as "Data Transfer and Memory " in my "DAQmx Channel" property node, as below
    But, in my Labview 8.5, I can't find it. I re-installed NI-DAQmx, but it didn't work. What I can get is
    Did I miss something? Thank you.
    Regards,
    Bo
    Message Edited by foolooo on 10-23-2008 07:02 AM
    My blog Let's LabVIEW.
    Solved!
    Go to Solution.
    Attachments:
    temp.JPG ‏11 KB

    Hi Andrey,
    Thank you for your reply. But I tried this on another computer on which lv 8.6 was installed, and it worked. I just simply dropped the channel property node, and didn't connect with any channel vi, and there were available options on that one. But for this pc, it doesn't work. I also configured the hardware in Mea & AE, it didn't help.
    btw, my labview is full licenced.
    Best wishes,
    Bo
    My blog Let's LabVIEW.

  • Daqmx channel property node

    Hi all,
    I've downloaded an example for a quad counter which uses a daqmx channel property node to specify A,B,Z channels.
    I have tried to replicate the example using LV8.1 but the only properties that I get are 'Active Channel' and 'General Properties' with 4 sub properties. Why don't the channel properties show up? What am I missing here?
    I have attached a jpeg of what im talking about. Any help is appreciated.
    Cheers,
    Dave
    Attachments:
    prop node.jpg ‏16 KB

    Hi David,
    This happens when you have not inserted a DAQ device in your system or your DAQ device is not detected by your MAX.
    You could do one of the following
    1. Insert a DAQ card into the PCI/PXI slot
    or
    2. Simulate a DAQmx device in MAX.
    By doing this, the corresponding DAQmx properties will show up

  • SOAP Receiver Channel 2 nodes inactive in Production system

    Hi All,
    We are facing an issue with the SOAP receiver channels in production system. There are 4 nodes which can be seen in the communication channel monitoring and out of which 2 have the status as inactive and the short log says "inactive or never used".
    But the same nodes are active on the sender SOAP channel and all other channels.We have also checked the Status of the SOAP service that is also set to active.
    Now when the server (App server5 in our case) is switched off, which has the 2 active nodes, the messages are not processed since the nodes on the other server are inactive.
    Request you to please help us out in finding out why the nodes are in inactive status only for SOAP receiver channels. Do we need to change any settings at the adapter engine level.
    Thank you.
    Regards,
    Sarvesh Desai
    Edited by: Sarvesh  Nispat Desai on Aug 25, 2010 5:25 PM

    There is an error in reporting the status of SOAP channels. This error has already been fixed by SAP and is available as a fix in higher releases (PI 7.10 and above, latest SPs) .
    The status "inactive or never used" is shown in channel monitoring at the following two times:
    1. After creating a new SOAP channel (sender/receiver) till this channel processes any new message.
    2. After the PI system is restarted, all the SOAP channels show this status, though they are ready to handle any incoming/outgoing messages. The channels continue to display this status till they process any new message.
    In both these situations, the SOAP Channel can handle/process messages successfully. So, kindly ignore this channel status ("inactive or never used") reporting error in channel monitoring. This will not at all hamper the normal functioning of the SOAP channels.
    Hope this answers your query.

  • Why we need to conver Context  Node data into XML file----Export to Excel

    Hi All,
    Let me clarify my dought........today i have gone through the concept of  "Exporting Context Data Using the Webdynpro Binary cache" in SAP Online Help.
    From the SAP Online Help pdf document, i have found that, the context node data has been converted first in to XML file,after that file had been stored in the web dynpor binary cache...bla....bla.........
    Here my qtn is why they had converted context node data into XML file. With out doing that can not we export context node data to excel file..?
    Regards
    Seshu
    Edited by: Sesshanna D on Dec 19, 2007 7:25 AM

    Hi Sesshanna,
    it is not neccessary to do that but xml has the advantage, that it can be easily transformed into every output format that might occur in later project stages.
    If it's simply about blowing out some Excel, I suggest using an OSS library such as jexcelAPI or Jakarta POI and building the Excel how you need it.
    regards,
    Christian

  • Need help in combining two similair SQLs into one

    DB Version:10gR2
    I need to combine the following two queries into one query and return the following three columns
    Unprocessed Quantity1,Unprocessed Quantity2, Total Uprocessed Cost
    Unprocessed Quantity1 can be determined using
    select t.ITEM, sum(t.QTY)
      from (select cd.ITEM_ID ITEM, cd.ACTL_QTY QTY
              from CONVEY_HDR ch, CURRENT_INVN cd, ALLOC_HDR ah
             where ........
            UNION
            select sd.ITEM_ID ITEM, sd.INVN_QTY QTY
              from shp_dtl pd
            UNION
            Select item_id, inv_qty from another table
        GROUP BY.....
    ITEM        SUM(T.QTY)
    88JAT                25
    000002395           1
    300108396          27
    000004397           7
    73984290           15Unprocessed quantity2 can be determined using
    select t.ITEM, sum(t.QTY)
         from (select cd.ITEM_ID ITEM, cd.ACTL_QTY QTY
                 from CONVEY_HDR ch, CURRENT_INVN cd, ALLOC_HDR ah
        where rownum<6
       group by t.ITEM
       order by t.ITEM;
    ITEM        SUM(T.QTY)
    189436171           2
    009438837         160
    000040685          16
    000032410          18Total Unprocessed Cost can found using the sum of Quantities for a particular Item from above two queries multiplied by
    ITEM_COST for that ITEM (which is found in ITEM_DTL table). For every item; ITEM_DTL.item_id=CARTON_dTL.carton_id
    Total Unprocessed Cost= (Unprocessed Quantity1+Unprocessed Quantity2)*ITEM_DTL. ITEM_COST
    Note: Unprocessed Quantity2 query looks very similair to first SQL in UNION of Unprocessed Quantity1, but ah.STAT_CODE < 90 for Unprocessed Quantity2 query
    Edited by: user636669 on Jan 14, 2009 10:40 AM
    Edited by: user636669 on Jan 14, 2009 10:57 AM
    Corrected typo
    Edited by: user636669 on Jan 14, 2009 7:07 PM

    Hi,
    Put the two queries you posted in sub-queries. You can then use their result sets as if they were tables.
    Do something like this:
    WITH  uq1  AS
        select t.ITEM, sum(t.QTY) AS total
          from (select cd.ITEM_ID ITEM, cd.ACTL_QTY QTY
                  from CASE_HDR ch, CASE_DTL cd, ASN_HDR ah
        ... the rest of your first query goes here
    ,     uq2  AS
        select t.ITEM, sum(t.QTY)  AS total
             from (select cd.ITEM_ID ITEM, cd.ACTL_QTY QTY
                     from CASE_HDR ch, CASE_DTL cd, ASN_HDR ah
        ... the rest of your second query goes here
    SELECT  uq1.item
    ,       uq1.total  AS "Unprocessed Quantity1"
    ,       uq2.total  AS "Unprocessed Quantity2"
    ,       (uq1.total + uq2.total) * dtl.item_cost
                       AS "Total Uprocessed Cost"
    FROM    uq1
    JOIN    uq2               ON uq1.item = uq2.item
    JOIN    item_dtl   dtl    ON uq1.item = dtl.item;If some items are in uq1 but not in uq2 (or vice-versa), then you'll probably want to do outer joins.
    I don't have any of the tables used, so I can't test this myself.
    If you need more help. then post a little sample data from each of the tables, and the results you want from that data.
    It looks like you're doing the same join in each of your original queries.
    You can add another sub-query that does that join once, and then use that sub-query in sub-queries uq1 and uq2.

  • I need a solution for node-webkit and libudev.so.0

    Hello there!
    I'm developing the package of node-webkit in the aur. Since the first time I had trouble with libudev.so.0. The first quick fix was to generate a symbolic link to libudev.so.1, but this is not the best way and can destabilize the system.
    The symbolic link is the recommended workaround for this problem at the moment. I don't think there will be a fixed version in the near future. By reading the issues on the bugtracker of node-webkit I found a solution by using a start-script and rewrite the LD_LIBRARY_PATH. This variable is missing in Arch, so I thought, I can add a file into /etc/ld.so.conf.d/. It's not what I wanted, because the library is then globally accessible, but it works on my machine.
    I think there must be a better solution. Best choice would be a shell startscript in my opinion, but I don't know how.
    My own package of libudev.so.0 were be deleted with the comment: "it is not needed, you can just provide a symlink to libudev.so.1". One say this, another say whatever -.-0 It's annoying. I really want a solution!
    Here is the PKGBUILD:
    pkgname=node-webkit
    pkgver=0.6.0
    pkgrel=2
    pkgdesc="node-webkit is an app runtime based on Chromium and node.js."
    arch=("i686" "x86_64")
    url="https://github.com/rogerwang/node-webkit"
    license=("MIT")
    depends=("alsa-lib" "gconf" "gtk2" "nss")
    optdepends=("nodejs: npm package support"
    "nw-gyp: native add-on build tool for node-webkit")
    if [ "$CARCH" = "i686" ]; then
    _arch="ia32"
    sha256sums=(
    "4b3f45cbb023d043955620a1f84b239249ac00a2649834c0c675d1574462f307"
    "c77f5c8bcbce1c8f12d574538845ff5b467fd1acc9e5998f459abcf6b4b7fec3"
    fi
    if [ "$CARCH" = "x86_64" ]; then
    _arch="x64"
    sha256sums=(
    "a8fb4c045cc5de78d1ac784c50c1eda986d6ccbe82778f6285c5da1bfceda64e"
    "fe517d0cf7f374477fcbd654b57f1bc8660069c522625bb06f4d5fc565fdede3"
    fi
    source=(
    "https://s3.amazonaws.com/${pkgname}/v${pkgver}/${pkgname}-v${pkgver}-linux-${_arch}.tar.gz"
    "http://arm.konnichi.com/core/os/${CARCH}/udev-182-4-${CARCH}.pkg.tar.xz"
    package() {
    msg2 "create path and copy files"
    mkdir -p $pkgdir/{etc/ld.so.conf.d,usr/{lib/${pkgname}/lib,bin}}
    cp -R $srcdir/${pkgname}-v$pkgver-linux-$_arch/* $pkgdir/usr/lib/node-webkit/
    msg2 "copy libudev.so.0.13.1 -> /usr/lib/node-webkit/lib/libudev.so.0"
    cp $srcdir/usr/lib/libudev.so.0.13.1 $pkgdir/usr/lib/node-webkit/lib/libudev.so.0
    echo "/usr/lib/${pkgname}/lib" > "$pkgdir/etc/ld.so.conf.d/${pkgname}.conf"
    msg2 "symlink /usr/bin/nw -> /usr/lib/${pkgname}/nw"
    ln -s "/usr/lib/${pkgname}/nw" "$pkgdir/usr/bin/nw"
    msg2 "symlink /usr/bin/nwsnapshot -> /usr/lib/${pkgname}/nwsnapshot"
    ln -s "/usr/lib/${pkgname}/nwsnapshot" "$pkgdir/usr/bin/nwsnapshot"
    Last edited by blackcat (2013-06-21 22:10:55)

    Do not use prebuilt binaries, but compile the package from source with the current libudev.
    sha256sums=(SKIP)
    source=("$pkgname::git+https://github.com/rogerwang/node-webkit.git#tag=nw-v$pkgver")
    to build it in the PKGBUILD, use nw-gyp i guess.
    Last edited by progandy (2013-06-21 22:54:36)

  • Need information of Configuration Nodes

    Hi Experts,
    I am in need of information related to the configurable nodes those are related to Implementation of OM,PA,TM and PY.
    As i have to work on Solution Manager for configration I have to find all the necessary nodes and copy them to Solman.
    So I need information on the above to go further.
    Please provide your valuable inputs on this.
    Thanks in advance..........
    Cheers,
    Raj

    Hi,
    Go to SPRO
    You will see Personnel Management, Personnel Time Management and Payroll nodes.
    They will have sub nodes.
    Hope this helps
    Ajay

  • Hierarchy needs to display blank nodes

    Hello All,
    I am having a Function hierarchy in the Column section of a query. For our example we will consider our hierarchy has 4 nodes say A, B, C, D. I have observed that if there is no data for say Node B it does not show up. My query gives results displaying only A, C and D nodes.
    Is there any way for the hierarchy to show all the nodes irrespective of if there is data or no data for all the nodes?
    My requirement is that it should populate a '- ' '0' or at least blank cells but it should show all the hierarchy Nodes (as headers) in the report.
    Option I already tried: I know it is possible with Structures, but I cannot build a structure as I already have two structures in the query for some other calculation purpose and cannot put a third one.
    Please let me know if my problem statement is not clear or you need any further information. Thanks a lot for taking a look.
    Fucntion->..........A.........B.........C........D
    Job level.............12........" ".......45...,...5            
    Sr Manager.........44.......'0'........21......25
    Manager.............41......." "........4........5
    Intern..................44......."-"........65.......66

    I've tried to use hierarchy node variables, but it seems like you can't specify a attribute of the hierarchy such as level.  So with the WBS hierarchy, if you create a hierarchy node variable, you specify the WBS value to select (If I understand this correctly).  I wish I could instead specify "give me all the WBS nodes that happen to have the value of the level attribute greater or equal to 3.  If I understand Juergens post, he is saying make security access so that only certain WBS levels can be returned in the query.  I suppose we can try that, but that would then preclude getting the level 1 and 2 in the future if the authorization is global.

  • JMS Channel Cluster Nodes-INACTIVE

    Hello All,
    We have a Sender - JMS Channel which is green state but the Cluster Node (10 of them) are in WAITING STATE - Channel_Inactive. And Nodes are in GREEN STATE.
    I have checked the Cache in Integration Directory where I could see RED entries and I have tried 'Repeat Cache Instance' , but in vain. Is it a fair idea to Run the Function-module 'LCR_CLEAR_CACHE' ? Does it have any impact?!
    Due to this 1 of the message is lying in the MS system (JMS stream) in Uncommitted State.
    ALL HAPPENING IN A PROD SYSTEM!!!
    Please find the screenshots attached.
    Regards
    KarthiSP

    Hi ,
    Check the central adapter engine cache status in Cache monitoring from RWB...its having green or red...if it is red check with basis team...
    Thanks,
    Naveen

  • Need help on combining these two program

    Hi all,
     I needed some help on combining these two program. But i not very sure how to do it.
    My program in working with TimeIn/TimeOut attendance taking. The snippet vi "insert data" is the where i start to TimeIn and insert into the microsoft access. And i wanted to insert it together with a camera catching the user's face. But i have no clues on how to combine them.
     Can u guys give me some ideas to help me ?
    Thanks in advance.
    Attachments:
    IMAQdx.png ‏55 KB
    insert data.png ‏68 KB

    Hi Himanshu,
    But if i put everything inside the IMAQdx loop ,it make my whole program more complicated. 
    This is how my program looks like below.
    I only want to display the image only when i "insert" all data into the database ( which i given at the perivous post).
    Is there other way?? And how do u make the IMAQdx loop stop without putting a stop button?? Because everytime i run the program,it will run continuously at the IMAQdx loop..
    Thank in Advance.
    Attachments:
    FYP.png ‏205 KB

Maybe you are looking for

  • Delivery Schedule Confirmation inbound

    Hi experts, Business scenario: For material planning purpose, The SAP PO would require delivery schedule confirmation from supplier to be used as a PO firm item when the PO is released. The PO items are critical since they will be used as material re

  • Need to capture Vendor code & Service Order no during Goods Issue

    We have a typical req of tracking Goods issued to contractors to whom Service Orders ( Labour jobs ) is awarded. Even though contract is pure labour type , we intend to track materials issued against work orders.Std transaction of Goods issue to Purc

  • Am I buying the right USB hub

    I want to connect a digital camera to usb port. The 3 ports on the back of computer are being used for printer/keyboard/mouse. (I am not using a Mac keyboard so don't have the 2 extra ports). I am not a techie, not even close. After reading about por

  • Change row number

    Hello, I have a interactive report and I want to change to row number for defect. Always for defect it saw 15 row but I want to saw 100. How can I do it? My version of apex is 3.2.0.00.27 Thank you. Reggards, Amparo

  • IManager error 500 managing cluster services

    I have a new OES11 tree with an OES11 cluster. All servers in the tree are OES11. I have the cluster plug installed in iManager and was able to successfully set up and configure the cluster. However, time to time as I go back to check the cluster for