VideoHelp Forum
+ Reply to Thread
Results 1 to 8 of 8
Thread
  1. I am currently cleaning up some super-8 videos. A lot of dust and scratches could be removed with several avisynth scripts using RemoveGrain, Removedirt and so on.
    However one of the videos contains a lot of static dirt and it looks like all the tools have serious problem with these static spots.
    I also tried the neatvideo demo but it is blurring too much and it isnŽt able to handle this noise either.

    Some frames from the video:
    Click image for larger version

Name:	usedom.jpg
Views:	282
Size:	211.1 KB
ID:	41551

    Another approach would be photoshop, the spot healing doesnŽt work unless IŽd process each frame manually. Apart from the insane amount of work the spot healing tool
    is just copying surrounded areas and I have the feeling that could look weird in a video.

    So I thought of using an action by manipulating the luminance of the spots, but as you can see this isnŽt working too well either.
    I wonder if there is program/plugin that is able to handle this type of dust better.

    Click image for larger version

Name:	staticnoise2.jpg
Views:	224
Size:	82.7 KB
ID:	41553
    Image Attached Thumbnails Click image for larger version

Name:	staticnoise.jpg
Views:	233
Size:	140.9 KB
ID:	41552  

    Quote Quote  
  2. A video is worth a thousand pictures (or words). Please upload an untouched video sample - 10 seconds or so - that shows the problem.
    Quote Quote  
  3. Okay, Here we go...
    Image Attached Files
    Quote Quote  
  4. I generated an image of the spots by averaging many frames together, touched it up a bit by hand, then:

    Code:
    LSmashVideoSource("C:\Users\John\Downloads\usedom_10s.mp4") 
    
    spots = ImageSource("C:\Users\John\Downloads\usedom_spots.png", start=0, end=framecount, fps=framerate).Invert().ConvertToYV12()
    spots = spots.ColorYUV(off_y=-95)
    #return(spots.Histogram())
    
    Overlay(last, spots, mode="add")
    ColorYUV(off_y=-12)
    BilinearResize(width/2, height/2)
    RemoveDirtMC(50)
    If you have some frames of the spots on a white (or other solid) background you could get a better spot image to subtract.

    Image
    [Attachment 41556 - Click to enlarge]
    Image Attached Files
    Quote Quote  
  5. Wow, that result looks amazing! IŽll check it out on the whole video. Thanks jagabo!
    Quote Quote  
  6. Works perfect, may I ask what you used to average the frames? Avisynth Average?
    Quote Quote  
  7. To average frames I used several Merge() command in a row:

    Code:
    Merge(SelectEven(), SelectOdd()) # average of 2 frames
    Merge(SelectEven(), SelectOdd()) # average of 4 frames
    Merge(SelectEven(), SelectOdd()) # average of 8 frames
    Merge(SelectEven(), SelectOdd()) # average of 16 frames
    Merge(SelectEven(), SelectOdd()) # average of 32 frames
    etc.
    I then opened that in an editor, picked a frame that was near the end (because it had the least detail, aside from the spots) and exported a still. It still contained a boat in the middle of the frame so I erased it by hand.
    Quote Quote  
  8. Thanks, IŽll give that a try if my attempt with ImageJ and 2000 frames fails. Up to now it looks good but takes a while of course.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!