I use them all the time. I know Sanlyn uses RGB histograms a lot (ColorTools in VirtualDub).
+ Reply to Thread
Results 31 to 60 of 73
-
-
I think he wants every pixel to have H= some set value . So if you use a HSV color picker and ran through it, it would show the same H degrees for every pixel
In this example , I chose H=162
Another way you can do this is with layer blending modes in photoshop, AE, gimp etc... using the "hue" blending mode . If you have a video you can batch process images (or just use AE)
Photoshop
http://help.adobe.com/en_US/photoshop/cs/using/WSfd1234e1c4b69f30ea53e41001031ab64-77eba.html
Hue Creates a result color with the luminance and saturation of the base color and the hue of the blend color.
http://docs.gimp.org/en/gimp-concepts-layer-modes.html
Hue mode uses the hue of the upper layer and the saturation and value of the lower layer to form the resulting image.
http://avisynth.org/mediawiki/Overlay -
-
-
I'm gonna make up a bunch of those gifs to have on hand, for times like this.
-
Last edited by budwzr; 3rd Jun 2013 at 23:06.
-
I could've uploaded a more boring, kosher screenshot of the girl's knee taking up the whole frame if I looked hard enough but then I wouldn't get to hear you children with all your euphemisms for bodily functions.
PDR, I have both PS and GIMP, how do I do this on PS because I've tried.
Doing a batch operation will be a little annoying because the video is 180,000 frames but since it's old VHS crap resolution I doubt it'll be a drag.
Reason I'm doing this is 'cuz I found that porn vid that I got from Kazaa 10 years ago as a kid, remembering how download speeds were so painfully slow and how a 200 MB MPG file back then was a goddamn piece of elite collector gold. Before deleting it right now I wondered how it might work out with ISDN bitrates with modern codecs. MPEG-1 actually was designed to be streamed at 64-128kb/s online and it worked for stationary videos (web conferences). Since this video is 90% monochrome and most of it stationary, I wanted to see if this would work out. -
Compression was already addressed in the 1st reply - Changing each value of Hue to a set value alone is not going to have much of an affect
To batch process, you could make a batch action in photoshop, but it's going to be 10x easier in a video editor that has "hue" as a layer blend mode option. AE has it, and Premiere has it as well. I don't think vegas has it
It should be "doable" in avisynth with the correct math (you can convert to HSL/HSB/HSV to RGB back & forth in programs like imagemagick and separate channels so it should be possible to do an H swap , convert back to RGB) -
Blender has it too
http://blenderartists.org/forum/showthread.php?293905-Blend-and-interpolation-modes-for-the-manual
It gives the formulas as well, so maybe someone like jagabo or gavino can translate it to "avisynth-ese"
Hue - mix(a, HSV(bH, aS, aV), f) - Mixes hue of the blend layer into the base layer
-
Can ya'll fix this one too? I'm trying to get it into the film festival next month. I was throwing peanuts for hours, and all birds showed up, then FINALLY I got a squirrel.
Think it's worth money?
-
In my experience, chroma noise punishes compression severely. I once cleaned up this guy's wedding footage on VHS with heavy chroma noise. Before denoising, x264 at CRF18 needed 1500 kb/s for 288p. After denoising, it needed only 180 kb/s. Encoding speed was much faster too.
This video doesn't have heavy chroma noise but since I'm going low bitrate, even 10 kb/s of entropy is a big difference. I'm seeing if HIGH quality is finally achievable for 240p at ISDN bitrates.
Thanks for the PS tip. Check this photo out. Goddamn beautiful, no? Who's the wise-ass who said monochrome has to be black-n-white? It should've always been blue-n-white. -
Very nice picture! That's pretty much what I was talking about, wrt DUOTONE, BTW.
Scott -
It depends on the degree of chroma noise. The difference between your original, and the set hue version will be tiny compared to luma denoise. But if 10kb/s is significant for you, I guess this is an interesting experiment for you
I'm seeing if HIGH quality is finally achievable for 240p at ISDN bitrates.
In photoshop you could batch the creation of a the top layer solid color (you don't physically need 180,000 frames of that solid color stored on a HDD)
It literally takes seconds to do in a video editor or AE, but for photoshop to batch 180,000 frames is no fun task.... even if the resolution is tiny.... eitherway it's going to take a while and lot's of HDD space using photoshop. In both cases I assume you will encode to a video format, so that part is the same -
How do I batch an operation like this on Photoshop? Step by step.
I got the 180,000 frames. Over 40GB, holy SHIT. To think I was bitching about it being 200x smaller as too large and that I need it 1000x smaller... (which is what 128 kb/s would achieve.)
Doing wanton experiments like this really teaches you respect for the technology and all the pain and suffering mathematicians went thru for the last 50 years to bring us the Frourier/DCT transforms today just so we can share a million retarded cat videos and unerotic bullshit porn like the video I'm working with. And on top of that to complain how long it takes to transfer or that the quality isn't good enough.
You almost understand why the intelligent tend to have superiority complexes and contempt for most peasants.Last edited by Mephesto; 5th Jun 2013 at 17:46.
-
No I mean how do you automate this specific action? I went to File > Automate > Batch but Hueblending with a specific layer wasn't on the action list.
-
You record a new set of actions and call it whatever you want e.g. hue swap or whatever
eg.
http://psd.tutsplus.com/tutorials/photo-effects-tutorials/batch-editing-and-automated-...-in-photoshop/ -
Do a single frame setup & test:
*Load a representative copy of your source image.
Use the eyedropper to pick your hue. Save it as a swatch.
*Convert the mode to 8bit Greyscale.
*Convert the mode to Duotone, and set up your second color (besides Black) by loading the swatch.
Adjust the saturation curves to your liking (naming each color), and save the combo as a Duotone preset (named & put into common folder).
*Convert to standard 24bit RGB.
Save-as your test (to BMP, PNG, JPG, etc).
Then, do a trial run on either the same original, or on a similar clip, this time Recording your actions. When converting to Duotone, load your saved preset. (Items used in action denoted with *)
Then, making sure to move those other test/trial ones out of the way, do:
Automate | Batch, and choose your Action, find your pic sequence folder, and adjust your options (such as destination "Folder") and do [OK].
It should work something like this...(video)
ScottLast edited by Cornucopia; 6th Jun 2013 at 11:52.
-
You record a new set of actions and call it whatever you want e.g. hue swap or whatever
eg.
http://psd.tutsplus.com/tutorials/photo-effects-tutorials/batch-editing-and-automated-...-in-photoshop/
Cornucopia, that's a lot of steps, lol. I only needed to record 4 at the expense of not being able to use the paste key for a few hours. Load cyan solid layer from the clipboard, change blend type to hue, merge layers, save image.
So the batch is done and the video looks great. It removed a lot of chroma junk, but because the fix was hue-only there are parts that were left grey so there's a little bit of patchiness.
I took this a step further though and changed the hue to 15 for human skin. To make it look right I have to increase brightness but I wanna avoid clipping.
Is there an avisynth tool that works with RGB32 that can selectively increase brightness? I wanna avoid brightening very light pixels that will get clipped. -
-
But converting all pixels to the same hue is not going to flatten the U or V channels (the colorspace in which video compression works) except for 4 particular hues. Using your blue landscape as an example:
As you can see there's still lots of signal in both the U (right) and V (bottom) channels. Visualizing the YUV planes as greyscale:
All three contains recognizable image data.
But at particular hues you can eliminate all detail from either the U or V plane. Your image after Tweak(hue=-41) for example:
And, of course, greyscale flattens both the U and V planes.Last edited by jagabo; 6th Jun 2013 at 06:50.
-
BTW - If you have the extended version of photoshop, you can open video directly as well .
For types that it can't natively open (e.g. maybe mkv container etc...), you can use avfs and it will be able to open it . But you can only export though quicktime videotype options (or image sequence) . I suppose this would have been faster -
"All those extra steps" are just done once at the very beginning to set up the preset(s). If you already have presets, then there's only 3-4 steps in the action, and only a few steps to start the automation. Whatever.
I did export to image sequence in Vdub (and then later re-import of image sequence for the completed work) to get this to work - was a breeze. I'm sure there are ways to script this in AVISynth, etc. as well, but I just haven't had the time to look into that. Down the road...
Scott -
As usual, use Overlay() with a mask based on the luma channel.
I know flattening the hue to a wrong value won't flatten the UV. So what? I wanted to get rid of fluctuations of the chroma in entire frames a.k.a noise and flattening does just that and decreases entropy.
Btw, can you help me interpret those kaleidoscopic graphs you have there? Cuz I'm not sure what I'm looking at. Direction and brightness of the purple means what? Why does it have a bulge in the middle? What part of the picture does that part represent? -
Something like:
Code:mask = GreyScale().RGBAdjust(rb=-215, gb=-215, bb=-215).RGBAdjust(r=255, g=255, b=255)
Then use Overlay():
Code:Overlay(bright_image, original_image, 0, 0, mask)
https://forum.videohelp.com/threads/340804-colorspace-conversation-elaboration?p=212156...=1#post2121568
Now draw the same graph for every scan line of the image, all drawn on top of each other. In the final graph bright areas indicate many pixels had that brightness in that column. Darker areas indicate fewer pixels had that brightness. Black areas indicate no pixels had that brightness.
If you view a video waveform on an oscilloscope you have a waveform monitor. The beam moves at constant velocity from left to right. With increased voltage (brighter) the beam moves up on the screen. With decreased voltage (darker) it moves down. With each scanline the beam starts again from the left (you trigger on the horizontal sync pulse). Persistence of the phosphors essentially adds many traces together.
When VideoScope draws the waveform graph at the right edge of the frame it works in columns rather than rows, with 0 at the left, 255 at the right.
Chroma waveform monitors are the same thing except for the chroma channels.
Finally, the UV vector scope plot is an X,Y plot of U and V values. U from 0-255 horizontally, V from 0 to 255 vertically. Grey is in the middle of the graph. Saturated colors at the edges.Last edited by jagabo; 6th Jun 2013 at 22:42.
-
I have a hue flattening approximation function. It's not perfect because I approximate the radius of the U,V vector with (abs(U)+abs(V)) * 0.85 rather than sqrt(U^2 + V^2). So some colors become a little more saturated, some a little less. But overall it looks pretty close to a true hue flattening:
Code:function FlattenHue(clip src, int desired_hue) { desired_hue = default(desired_hue, 0) # get length of V component V=VtoY(src) V=Overlay(ColorYUV(V, off_y=-128), Invert(V).ColorYUV(off_y=-128), mode="add") # get length of U component U=UtoY(src) U=Overlay(ColorYUV(U, off_y=-128), Invert(U).ColorYUV(off_y=-128), mode="add") # approximate radius with (U+V)*0.85, rather than sqrt(U*U+V*V) # and add 128 to get it back to the center of the U,V plane U=Overlay(U, V, mode="add").ColorYUV(gain_y=0).ColorYUV(gain_y=-38).ColorYUV(off_y=128) # create an empty V channel V=ColorYUV(U, cont_y=-256) # put U and V channels back with the luma YtoUV(U, V, src) # adjust to the desired hue Tweak(hue=-desired_hue-108) }
The filter flattened the hue to the requested value. Animate() was used to test all 360 values.
Code:ImageSource("image.png") # full color image ConvertToYV12() Animate(0, 360, "FlattenHue", 0, 360)
Last edited by jagabo; 8th Jun 2013 at 17:54.
Similar Threads
-
Strange Hue problem
By dan59 in forum Capturing and VCRReplies: 26Last Post: 16th Nov 2012, 02:41 -
How to adjust Hue of vob file ?
By vidyarathne in forum Newbie / General discussionsReplies: 3Last Post: 11th Sep 2012, 14:07 -
Hauppauge PVR-150 Hue and Saturation adjustment
By Spektre in forum Capturing and VCRReplies: 3Last Post: 15th Jun 2011, 10:09 -
Pink hue on TV
By uniks in forum Newbie / General discussionsReplies: 4Last Post: 5th Apr 2011, 06:00 -
fluctuation of saturation and hue levels
By mark23 in forum RestorationReplies: 0Last Post: 1st Feb 2011, 17:12