That's an interesting post. I was not aware of any reason why Ctrl clicking a layer thumbnail would make an exact selection. so I tested it out. I drew an ellipse across the image file, and filled it with a Black to White gradient. I then ctrl clicked the gradient and copied to a new layer with Ctrl j. I ten Ctrl clicked the copied layer and repeated the process until I had five generations of select and copy, which would have built up and exaggerated any problems with using ctrl click to load a selection.
The image below shows the first and fifth generation copy with an offset, and looking at it at 100% on my monitor I am sure they are identical.
When you made the copy of your layer B, was that flattened with the 50% grey layer beneath it? I realise that you could not ctrl click to load the selection on a flattened layer, but you might have ctrl clicked the underlying layer, while making the copy from a flattened layer, and I am trying to think what might have led to your problem.
What version of Photoshop are you using? I always found the Extract tool flawed and compromised, and if you have CS5, its Refine edge tool is much better, but still not perfect.
Just as an addendum, I expect you realise that the marching ants only encircle pixles with a >=50% opacity, but the lower opacity pixels are still included in the selection?
Never flattened anything. Nope.
In the controlled experiment you provided I did get the exact response you did.
I've uploaded a PSD to see if you're able to achieve it.
The top layer is the 'cutout' layer. The 'original' is the image below on it's original white background.
I want to load the cutout that is already made on the 'cutout' layer and apply that same EXACT cutout the the layer labeled 'original'. I figured CTRL+Click 'Cutout' layer would make the selection and selecting the 'original' layer and selecting cut would make the same exact cutout... but it doesn't.
Well I am not sure if I am missing something, but I made a similar test with your psd file making five generations of Ctrl click and copy to a new layer, only this time I moved the original cutout lay up to immediately below the fifth generation copy. I then chaned the blend mode of the top layer to Difference, and got a perfect black which indicates a perfect duplicate. I'll have another look at your workflow, but I don't think the problem is down to Ctrl clicking the layer thumbnail loosing pixels.
[EDIT] I placed the white layer above the original to prevent an addative affect of the stacked layers. I am wondering now if you had more than one copy of the hair layer turned on?
That's definately perfect! I'm just a bit confused...
What do you mean a 5th generation copy? I'm not exactly sure how you achieved this.
If I CTRL+Click the layer titled 'Cutout' and then CTRL+J to copy it to a new layer it is simply a copy of the layer. The selection made by CTRL+Clicking was irrelevant. Doing this 4 extra times to the newly copied layer is just copying it again. It is obviously perfect, the same can be achieved by simply duplicating the layer.
But if I CTRL+Click the layer titled 'Cutout' I get a selection of it. Then I select the layer titled 'ORIGINAL' and press DELETE (with an inversed selection) but the cutouts simply do not match. They should be perfect though because I assumed they were recording the exact alpha data of each pixel when you CTRL+Clicked the layer titled 'cutout'. No colors, blending, or anything were applied to the image it's 100% uncontaminated. It was simply shot on white and cutout using the background eraser (which creates varying levels of alpha'ing). I thought CTRL+click would make the EXACT selection using alpha data from the layer titled 'cutout' and if you used this selection to cutout from the original they'd match.... but I found out they don't.
OK. The fifth generation was designed to multiply any errors, but I can see where you are coming from now. The Extract tool has not simply copied pixels, it has made some choices along the way, and changed some of those edge pixels. Reinforcing them apparently. I never really used the Extract tool back in the day, preferring to use Alpha channels and the Pen tool, but producing an Alpha channel of flyaway hair usually involved refining the edge by using a brush set to Overlay mode - black to harden the hair, and white to remove the background. Something like that has taken place in the initial Extraction process, so you can't simply use Ctrl click to lift the selection from the white background.
What you could do is improve the layer you lift off the white background. Lock its Transparency, then sample colour from the hair (a darker area will work best, but start with the lighter tones and build up - you can't go the other way so easily), and with a small brush paint over the flyaway hairs. It might work better with the brush set to overlay, or better still, do this on a new layer so you can try different Blend modes and adjust opacity. You'll have no problem with overpainting because you locked transparency.
Are we getting there?
Ctrl+Click is the shortcut for loading the layer transparency as a selection select pixels. You should always get the same selection if you do not change the layers transparency. You can also save it as a Alpha channel. You can even lock a layers transparency. I do not use the lock transparency other the forced one you get on the background layer which does not support transparency so it always lock, for all pixels are at 100% opacity in a Photoshop background layer. That is why all background layer are at lease partially locked.
Not a direct answer to your issue, but after seeing the image example of what you're cutting out it occurs to me to ask: Might you be interested in trying the Quick Select and Refine Edge functions of Photoshop CS5? It's possible this could give you better and more consistent results, and circumvent the problem you're seeing.
I'm referring to the technique described in this video: http://tv.adobe.com/watch/the-russell-brown-show/masking-basics-in-photoshop-cs5/
Just throwing it out there as an idea.
Do you have feathering or anti-alias selected for your selection tools?