i have a new video with a new problem that i never got before..
this is the problem:
I tried to move left the green by ChromaShift() but it doas not move that green Properly and make Things to looks worse..
i now that it can't help..
I thought to weaken only the green by hue/saturation/intensity(1.2) in VirtualDubMod and it is the closet raiper i got:
the hue/saturation/intensity(1.2) is Really WORSE plugin..
how can i fix it?
i uploaded a sample of the example..
I hope the problem is not a nightmare for you
It does seem like a disaster .. But I saw here on the forum worse disasters
thanks for the helpers!
+ Reply to Thread
Results 1 to 25 of 25
Last edited by gil900; 16th Feb 2013 at 17:39.
No, the hue/saturation/intensity(1.2) pluigin is not the worst plugin. Happens to be quite good. What's worse is the way you've ruined this avi clip. Nothing you can do with it after it's gone into RGB32. There might be a slim possibility that its UV channels could be fixed in YUV (perhaps), but some of the damage was inflicted during capture.
Last edited by sanlyn; 17th Feb 2013 at 10:23.Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau
A chroma shift obviously won't work. The green "bleeding" has something to do with over bright areas "bleeding" into the chroma channels, probably related to AGC, noise reduction, and/or sharpening circuitry in the the VHS deck. Try to get a cap that doesn't have the peaks clamped at Y=235. Then you'll need some smart algorithm that masks the peak intensities, massages them, shifts them to the right, then subtracts them from the image. A better sample with the bright area in the middle of the frame (with darker material on both sides) would be more helpful.
sanlyn, I would be happy if you teach me how to use the hue/saturation/intensity(1.2) correctly.
and the cap is not RGB.. i have done a mistake when i cut this part from the capture. i didn't noticed that it worked through the script i worte( i even can see the script in the image..) i will upload a clear sample for you.
jagabo, i don't understand what you say but i think that i will got it with example script on my new sample that i will upload.
Both of you very help me!
Thank you very much .. And I bless you for the help you have given here on the forum
I was intentionally being vague about the filtering because I don't understand exactly what is needed myself.
The h/s/i/ plugin isn't that difficult, and you can get similar effects with other filters. This one tends to be rather specialized.
In any event, this can't be fixed in RGB. And I would echo jagabo's advice: you need a better capture, using any capture bright/contrast filters that are available in your capture software. But don't try to capture with noise or other fancy filters, because they are too slow. It would appear that your original capture is far too bright to begin with, so little can be accomplished with it as-is.Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau
i uploaded a new sample on YUY colorspace..
i can't upload longer sample here but if it still not Enough information and you need longer sample so ask me and i will upload longer sample in a Private Message..
Your original sample avi in post #1 was 706x566, done with VirtualDubMod (? ?). VDMod might be OK for a some purpoxses, but some newer plugins will not work properly in obsolete versions of VirtualDub. But I assume you had a reason for using it.
The frame size has moved from 706x566 in the first avi version to 768x576 in the "new sample.avi" version. So I have no idea what is happening with this video. But if "new sample" represents your initial capture, it is FUBAR, and either fatally overexposed in-camera or completely destroyed in earlier processing of some kind. The capture itself is so bright that it is unworkable, even if you could find a way to repair the color.Our inventions are wont to be pretty toys, which distract our attention from serious things. They are but improved means to an unimproved end. -- Henry David Thoreau
i know that it is impossible to fix it perfectly..
and i didn't Expect this to happen because it is very clear that some of the image is burnt (Destroyed)
so the goal is only to make the video to have a normal and bad looking Instead of crazy and bad looking.
and the way to do it is to change the green colors to White so the final result will be at last normal..
i don't know about a ways to do it( change Range of green colors to range of White colors in Each Pixel)
and the reson why i using VirtualDubMod is this:
This is, in my opinion, VirtualDubMod's most useful function and the main reason for its inclusion in the AMVapp. We've had a look at how you use Avisynth and I'm sure it seemed like an arduous chore to create these text files, load them up, look at them, go back and edit them, load them again.... Arduous no more. VirtualDubMod has a sophisticated Avisynth Script Editor that you can use to edit and see the changes in your avisynth scripts instantly.
i still didn't got errors with plugins.. everything works perfect until now
You don't change the green colors to white, you desaturate green . ie. "secondary color correction"
It's more difficult to do in avisynth IMO (easier to do in other programs like NLE's , effects type programs - these have more tools for color work, and you can keyframe the changes - it might be that you need changes in the settings over time)
Using tweak() you can specify a starthue and endhue with sat to narrow in on a hue range . You can use different tweak settings, e.g. one for green , one for yellow, etc..
e.g. for green you might use something like
tweak(starthue=185, endhue=260, sat=0.4) #green
Of course, you need to adjust the other colors and do more work with the levels as well , but hopefully that will get you started...
I'm only addressing the green "bleeding" or whatever you want to call it. The result isn't perfect, needs tuning, and there's still a long way to go. But here's the general idea. Source on the left, treated on the right (simple bob for the demo):
The script is messy and could be done in fewer steps, but...
AviSource("new sample.avi") AssumeTFF() Bob() src=last # build a mask ColorYUV(cont_u=-256, cont_v=-256) # luma only ColorYUV(off_y=-200) # eliminate pixels below 200, needs tuning BilinearResize(16,576) # low res for fuzzy image, needs tuning ConvertToRGB() # for general convolution GeneralConvolution(0, "0 0 0 1 0 -1 0 0 0") # emboss, we only want light to dark transitions ConvertToYUY2() # back to YUY2 BilinearResize(768,576) # scale up to original size, intentionally blurry image Crop(0,0,-16,-0).AddBorders(16,0,0,0) # shift image to the right, may need tuning mask = ColorYUV(cont_y=200, gain_y=1200) # adjust contrast, brightness, needs tuning inv = MergeChroma(src, Invert(src)) # inverted colors Overlay(src, inv, 0, 0, mask) StackHorizontal(src,last) # for comparison
Last edited by jagabo; 17th Feb 2013 at 22:11.
Thank you very much jagabo
i will use it and try to understand how it works
poisondeathray , I do not rule out the possibility of doing it any other software.
i have "frame sarver" option in VirtualDubMod..
but i need to know how it can be done on Sony Vegas.
and i am looking for plugin for Sony Vegas that very similar to the ColorMil,,
The point is that in VirtualDud/VirtualDubMod i can't set groups of filter by frame/time range..
so that in some part of the video VirtualDud will use filter/s X and on other parts he will not use filter X and use other filter/s
or i can?
i know that it is possible in sony vegas..
i need color settings that changes for the video. with ColorMill the color Setting will be the same for all of the video because it is
Sometimes jagabo's scripts give me headaches it appears this one qualify for it! It does a fairly good job i gotta say
I recommend examining the mask as it's being built by adding return(ColorYUV(autogain=true)) at intermediate stages. The script needs a better way of blurring the mask. BilinearResize() to a small width then back up is very crude and causes several problems (small bright patches are missed, the mask pumps as the camera pans, etc.). I'll look into that later. Also, something like GeneralConvolution() that works in YUY2 would be better (though it's just used in building the greyscale map so it's not big deal).
Masking and masktools are so poorly explained in Avisynth, I still can't get a handle on it. Apparently formal graphics training in other areas is required, as these tools are for developers rather than users. But I'll keep picking up pieces here and there. Convolution matrices are for math majors. So I'd have to go along with the road jagabo has taken. However.....
frame 80, YUV + RGB, borders removed.
Darkened with ColorYUV(off_y=-42):
Filters can't use data that no longer exists.
How did the frame size get to be 768x576 ?
How did the frame size get to be 768x576 ?
i just uploaded Processed Example By mistake.
the reson why it happen in the Processed Example is in the second image in my first post on line 19 (in the "script editor window)
Line 19 in the image in your first post is not a resize statement, it's a crop() statement. The resulting image would not be 768x576, it would be 706x566 -- which was the frame size of the first avi you posted. 768x576 is not standard PAL (which might not matter, depending on what your final output will be), and it is a 4:3 square-pixel image aspect ratio. When cropped, the image aspect ratio is square-pixel 1.24:1. Was this video captured at 768x576?
Last edited by sanlyn; 18th Feb 2013 at 06:09.
Was this video captured at 768x576?
Line 19 in the image in your first post is not a resize statement, it's a crop() statement. The resulting image would not be 768x576, it would be 706x566 -- which was the frame size of the first avi you posted. 768x576 is not standard PAL (which might not matter, depending on what your final output will be), and it is a 4:3 square-pixel image aspect ratio. When cropped, the image aspect ratio is square-pixel 1.24:1.
vdub, you can use the curve editor to change or limit an effect over time, but it's not as easy to do or as useful as in other programs
It's way too much information to describe in 1 post. There are many tutorials on youtube, and other sites, many books and resources you can look at . If you have a specific question , I can try to help or point you in the right direction
Basically - In vegas pro (or most NLE's), you can do everything that you can in colormill and more. You can do secondary color correction and masks (much easier to do than in avisynth - you can preview the mask if you want and tweak it while seeing results in realtime) . So for example if you want to selective correct green, you put the eyedropper there and click on it. You can keyframe all changes for effects, this means changing value of parameters over time . You have scopes (waveform, RGB histogram, vectorscope) - so you can monitor and evaluate changes in realtime
Some of the reasoning behind my earlier filter sequence:
1) The green problem only happens in areas where a very bright area transitions (left to right) to a darker area. The green discoloration appears in the darker area, slightly to the right of the transition.
2) So we need to locate those bright to dark transitions. And we only need those transitions from very bright areas. First I eliminated colors from the mask since we don't need them:
We now want to locate only the bright to dark transitions. One way to do that is a horizontal "emboss". Basically, as you move left to right across the image you subtract the pixel at each location from the pixel immediately to it's left. If the current pixel is darker than the pixel to the left the result is a positive number. If the current pixel is equal to the pixel to the left you get a zero. Otherwise you get a negative number. But since Y values can only range from 0-255 all those negative numbers become zeros. What we are left with is a black image with brighter pixels marking the areas of light to dark transitions. Since we previously eliminated the darker parts of the image we only have those light to dark transitions from the brightest parts of the image.
But those transitions are fairly sharp (narrow), and the green bleed is fairly wide. So we need to smear those sharp edges out with a horizontal blur. That's why I added the Resize(small width) and Resize(big width) -- a crude horizontal blur. Too crude to use in practice but sufficient for in this proof of concept.
BilinearResize(16,576) ConvertToRGB() # for general convolution GeneralConvolution(0, "0 0 0 1 0 -1 0 0 0") # emboss, we only want light to dark transitions ConvertToYUY2() # back to YUY2 BilinearResize(768,576) # scale up to original size, intentionally blurry image
Crop(0,0,-16,-0).AddBorders(16,0,0,0) # shift image to the right, may need tuning
mask = ColorYUV(cont_y=200, gain_y=1200) # adjust contrast, brightness, needs tuning
So if the chroma channels were blended with inverted versions of themselves they would neutralize each other (resulting in grey). Inverted chroma:
inv = MergeChroma(src, Invert(src)) # inverted colors Overlay(src, inv, 0, 0, mask)
Overlay(src, inv, 0, 0, mask)
A most invaluable lesson, even if it doesn't cover everything (but, then, it couldn't ).
I don't even know why I just put 2 hours into looking up every masktools script I've collected, and studying the AfterEffects demos on masking and blending. But I suppose that's the only way to get thru this stuff. One big reservation I have is that the capture itself is to too bright to begin with; if a darker capture could salvage some of those destroyed bright values....(because apparently red and blue are being clipped "earlier" than green, which leaves bright greens but no other brights). That might prevent some of the green smear). Then I started playing with switching/blending color channels in YUV and RGB both -- not that I know that much about it. But the clipped colors stopped me every time.
But if the original camera recording was overexposed to begin with, there's nothing bright to salvage.
But your explanation is revealing, and thank you again. Another item in my jagabo tutorial collection.
Last edited by sanlyn; 18th Feb 2013 at 13:19.
thanks very much!
I'll take a look at it later ..
poisondeathray said a very important point.
he said that this problem can solved much more easily by advanced video editor like Sony Vegas.
and there is a lots of advantages.
so why use coding in avisynth after all if such problem can be solved more easily without any coding?
Last edited by gil900; 18th Feb 2013 at 14:23.
It can be solved more easily on a case-by-case basis. You can mark, say, the green bar next to the window and tell Vegas to make it gray. But you can't just say "make all the green areas grey". Somebody's green shirt may turn gray. Trees may lose their color. Etc. Since this green bleeding appears to have an identifiable cause there is hope of undoing it with AviSynth filters or writing a custom filter. Once the filter sequence has been created it will work with all shots with the same problem.
In short, if you have only a few short shots to fix it's probably easier to use Vegas. If you have lot of shots to fix it's probably easier to make an AviSynth script.
And I don't have Vegas. I just thought the problem was interesting so I took a shot at it.
Last edited by jagabo; 18th Feb 2013 at 16:16.
ok thank you very much !
Last edited by gil900; 19th Feb 2013 at 04:44.