Log in

View Full Version : Filter only bottom right of video?


Video Dude
12th March 2005, 01:56
Is there a way to only filter the bottom right of a video clip without touching the rest of it?

I have a 720x480 TV capture clip. At the bottom right of the video there is a logo that has very bad dot crawl. The dot crawl is only in the logo, not in the rest of the video.

The good news is that using DeDot at high thresholds will remove 99% of the dot crawl from the logo. The bad news is that because of the high thresholds, the rest of the video is ruined with artifacting (but the logo is perfect).

Thanks for any help or advice.

Seed
12th March 2005, 03:55
Use Crop function to crop out the area to be filtered, apply the filter to the cropped out area, then overlay the filtered area back to the original clip. (You can use Virtualdub with its null filter and crop function to determine the x and y coordinates of the logo area).

Just a sample script:

## logo area has its left edge at x=608, upper edge at y=400;
## its width = 80, height = 40
ORIG = avisource("myvideo.avi")
FILTERED = ORIG.crop(608, 400, 80, 40).Dedot()
Overlay(ORIG, FILTERED, x=608, y=400)

By filtering only that small area, you will gain a lot of speed increase as well.

Video Dude
12th March 2005, 05:11
:thanks:
Thanks.

It works perfectly.

Seed
12th March 2005, 06:16
As a side note, if the logo is that of the rightful owner of the video footage/movie (e.g. Disney), I will keep the logo (perhaps with some filtering/blurring like you do). But if the TV logo has nothing to do with the copyright owner of the video footage, I may just overlay a bitmap of my choice (e.g the graphical title of the movie/documentary) on top of the logo.

## make a bitmap of the same height and width as the TV station logo
ORIG = avisource("Human body.avi")
NEW_LOGO = imagereader("Human Body.bmp")
Overlay(ORIG, NEW_LOGO, x=608, y=400)