Как затереть логотип?

Страницы :   Пред.  1, 2, 3, 4, 5, 6, 7  След.

Ответить
Автор
Сообщение

doogler

Стаж: 10 лет 2 месяца

Сообщений: 593


doogler · 05-Дек-10 20:11 (8 лет 6 месяцев назад)

Hoolik81 писал(а):
Ещё варианты? мож чё попроще, к тому же логотип большей частью на черных полосах
http://i13.fastpic.ru/big/2010/1205/01/00fe6e5656552330c0caa9f13cddb401.png
Так тут вроде ничего затирать не надо. Обкропить до кратных 4 величин высоты и ширины фильтром null transform, и ресайзнуть фильтром smart resize 720x , чтобы с железного плейера играло.
[Профиль]  [ЛС] 

yulik_best

Стаж: 10 лет

Сообщений: 40


yulik_best · 06-Дек-10 01:26 (спустя 5 часов, ред. 06-Дек-10 01:26)

doogler писал(а):
Hoolik81 писал(а):
Ещё варианты? мож чё попроще, к тому же логотип большей частью на черных полосах
http://i13.fastpic.ru/big/2010/1205/01/00fe6e5656552330c0caa9f13cddb401.png
Так тут вроде ничего затирать не надо. Обкропить до кратных 4 величин высоты и ширины фильтром null transform, и ресайзнуть фильтром smart resize 720x , чтобы с железного плейера играло.
у меня точно такая же ситуация ..А как именно? т.е что нужно писать если фильм 720х576,.Можно ли конкретно строчки кода,которые нужно вставить? И еще вопрос...какую команду нужно вставить в скрипт для avs (будет использован в Канопус прокодер) если хочу перекодировать из бдрип в двд-видео если источник содержит логотип логотип ,про который я задавал.А то...перекодировал ,а логотип остался...хочется в следующих разах сразу же при кодировке убирать логотип (т.е как сейчас сказано,нужно чтото кропать,а как? пример?)
[Профиль]  [ЛС] 

doogler

Стаж: 10 лет 2 месяца

Сообщений: 593


doogler · 06-Дек-10 10:49 (спустя 9 часов, ред. 06-Дек-10 10:49)

Извините, далек от Avisynth-а с его AVSInpaint-плагинами и s_ExLogo-скриптами. Поэтому за завершенным кодом вам лучше обратится к спецам в тему, где начато описание преобработки видео фильтрами Avisynth.
Использовал скрипт только для загрузки в VirtualDub неподдерживаемых напрямую форматов. И уже там обработки с помощью фильтров VirtualDub (например, кропинг и ресайз с округлением до16-кратности фильтром VDMod_Resize) и затирания лого уже описаными страницей раньше фильтрами MSU Logo Remover, Logoway, Region Remove.
[Профиль]  [ЛС] 

samsonq

Top Loader 02* 300GB

Стаж: 12 лет 6 месяцев

Сообщений: 720

samsonq · 19-Дек-10 19:56 (спустя 13 дней, ред. 19-Дек-10 19:56)

Возник вопрос, пользуюсь DeLogo, в документации есть фраза:
Цитата:
Save the image to a numbered file, e.g. "Photo1.bmp", use a 24-bit color format. The number in the name is a tribute to VirtualDub, which expects a number in the filename to load it as a video frame.
Вроде бы, дословно написано, что число в имени файла маски определяет номер кадра видеопоследовательности из масок, у меня ничего подобного не происходит, есть 101 нарендеренная маска, все пронумерованы от 1 до 101, открываю первую, а она применяется ко всем кадрам. Я что, получается фразу недопонял?
И, может быть, кто-нибудь посоветует мультимасковые фильтры? Для видео, где объекты для удаления перемещаются на плоскости изображения.
[Профиль]  [ЛС] 

Andron1818

Стаж: 10 лет 4 месяца

Сообщений: 733

Andron1818 · 07-Мар-11 15:21 (спустя 2 месяца 18 дней)

Подскажите пожалуйста, как лучше всего затереть этот, слегка прозрачный, логотип. Желательно с помощью Avisynth?
[Профиль]  [ЛС] 

Pustovetov

AVC-Видео

Стаж: 11 лет 7 месяцев

Сообщений: 4335

Pustovetov · 10-Мар-11 01:59 (спустя 2 дня 10 часов)

Andron1818 писал(а):
Подскажите пожалуйста, как лучше всего затереть этот, слегка прозрачный, логотип. Желательно с помощью Avisynth?
EraseLOGO(logofile="xxxx.lgd", pos_x=0, pos_y=0, depth=128, yc_y=0, yc_u=0, yc_v=0, start=0, fadein=0, fadeout=0, end=-1, interlaced=true)
но нужно где-то найти или сделать самому этот самый xxxx.lgd
[Профиль]  [ЛС] 

Olte

Стаж: 9 лет 11 месяцев

Сообщений: 183

Olte · 23-Апр-11 06:13 (спустя 1 месяц 13 дней, ред. 29-Июл-11 02:15)

Уря! Прикрутил к `XviD4PSP 5` логодавилку . Работает на Avisynth скрипте "S_ExLogo.avs"(он уже есть в сборке `XviD4PSP 5`. Если нет, качайте тут). Помимо удаления логотипов может уничтожать субтитры, и бегущие строки. Скорость работы быстрая.
Вот код для `хххх.avs` пресета (положить в C:\Program Files\XviD4PSP 5\presets\filtering)
скрытый текст
#plugin_files
#S_ExLogo.avs

ConvertToYUY2() # For S_ExLogo()
LOGOMODE=2
# `logomode`[1-4] значение "0" - для настройки (видна маска лого); "2" обычный режим; "3" - Keep Chroma (delogo Luma only); "4" - Keep Luma (delogo Chroma only) – при ненасыщенных цветных лаготипах (например `канал Россия 1`) результат будет лучше чем при "logomode=2";
S_ExLogo(42,30,106,58,logomode=LOGOMODE)
# Где:
# S_ExLogo(a,b,c,d)
# `a` - расстояние логомаски от левого края экрана
# `b` - расстояние логомаски от верхнего края
# `c` - ширина логомаски
# `d` - высота логомаски
# `logomode`[1-4] значение "0" - для настройки (видна маска лого); "2" обычный режим; "3" - Keep Chroma (delogo Luma only); "4" - Keep Luma (delogo Chroma only) – при ненасыщенных цветных лаготипах (например `канал Россия 1`) результат будет лучше чем при "logomode=2";
# `amount` - Степень работы фильтра [0-256]. По умолчанию "252"
# `blurmode` [1-6] (по умолчанию "4"). Установка некоторого значения функции "Blur"(размытие). HBlur(горизонтальное размытие) и VBlur(вертикальное размытие). Продолжить тест.
# `spow` 1.0 - 150.0 (default 2.2). Не совсем понятно, но из описания следует что параметр задает что-то вроде степени отношения формирования вертикальных и горизонтальных полос на заливке лого, то есть чем меньше значение, тем более предпочтение отдается горизонтальным структурам.

ConvertToYV12()
# return Last
# Пресет для удаления логотипов телеканалов, субтитров, бегущих строк.
# Скорость работы: быстрая.
# Подробнее: forum.doom9.org/showthread.php?t=154559;
[Профиль]  [ЛС] 

FUSHA ^_^

Стаж: 9 лет 3 месяца

Сообщений: 452

FUSHA ^_^ · 25-Апр-11 23:30 (спустя 2 дня 17 часов)

А нет какой нибудь простой программки которая брала бы и просто делала мутным выделенный участок кадра?
Вроде все так просто, а реализуется только с помощью сложно настраиваемых плагинов.
[Профиль]  [ЛС] 

doogler

Стаж: 10 лет 2 месяца

Сообщений: 593


doogler · 26-Апр-11 02:17 (спустя 2 часа 46 мин.)

FUSHA ^_^ писал(а):
А нет какой нибудь простой программки которая брала бы и просто делала мутным выделенный участок кадра?
Просто мутным участок можно сделать в простом редакторе Edit STUDIO 6 - растянуть овал/прямоугольник на нужный участок мышкой и указать силу фильтра Blur.
FUSHA ^_^ писал(а):
Вроде все так просто, а реализуется только с помощью сложно настраиваемых плагинов.
Плагин Logoaway в Virtualdub-е не столь сложно настраивается, как это может показаться на первый взгляд, зато работает чище.
А специализированной простой проги по теме действительно нет. Скрипты Ависинта я не оговариваю.
[Профиль]  [ЛС] 

antical

Стаж: 11 лет

Сообщений: 57


antical · 13-Май-11 21:30 (спустя 17 дней)

А если усложнить задачу...
Имеется видеоклип хорошего качества с логотипом канала в PAL и он же, только с худшей картинкой в NTSC но без логотипа.
Насколько реально вместо логотипа засинхронизировать фрагмент из источника с худшим качеством, чтоб получилось лучше чем обычное затирание логотипа?
[Профиль]  [ЛС] 

masha_baradach

Стаж: 8 лет 1 месяц

Сообщений: 6


masha_baradach · 24-Май-11 22:52 (спустя 11 дней)

Юзайте адобе афтер еффектс кс3 и все!
[Профиль]  [ЛС] 

MaLLIeHbKa

VIP (Заслуженный)

Стаж: 12 лет 5 месяцев

Сообщений: 3866

MaLLIeHbKa · 27-Май-11 04:51 (спустя 2 дня 5 часов)

Цитата:
Имеется видеоклип хорошего качества с логотипом канала в PAL и он же, только с худшей картинкой в NTSC но без логотипа.
Насколько реально вместо логотипа засинхронизировать фрагмент из источника с худшим качеством, чтоб получилось лучше чем обычное затирание логотипа?
Вполне реально. Мануал c hdbits'а:
скрытый текст
haroldnipps писал(а):
I've had a lot of questions about how I did some of my recent logo removal using the DVD source, so I thought I'd write a guide to share what I've learned in case anybody else wants to try it out…
As you'll see, it's time-consuming, and a lot of things have to be just right in order for this kind of restoration to even be possible. I've had really good luck on couple of Disney films I've done, but your mileage may vary on other sources. For this example, I'll use The Little Mermaid, since it worked out particularly nicely, and a lot of you have seen it (or at least a sample or screens).
This is a pretty advanced technique, so I'll assume if you're reading this you're fairly good with AviSynth and AVSP (or the like). So with that, here's how you do it…
The first thing you'll have to do is frame-align the HDTV source with the DVD. This part is absolutely critical, and if you can't do it perfectly (i.e. the sources are different cuts), you can stop here. It won't work. If you're off by even 1 frame, you'll start seeing the outline of the logo during motion and a silhouette of the logo on scene changes. You can, of course, get creative with Trim(), DeleteFrame() and DuplicateFrame() if the sources are only off by a couple of frames, but be careful that everything continues to line up all the way through.
The second thing you'll have to do is pixel-match the two sources so that everything within each frame lines up perfectly. And when I say perfectly, I mean within 1 pixel at the HDTV source resolution. Any more than that, and you'll see an outline of the logo during motion. Use your choice of Resize() functions and AddBorders() to get everything lined up. If the framing of the two sources isn't consistent from scene to scene (for example if one is P&S), you may as well stop. It probably won't work out.
Of course, it's easier to match the frames if the pixels are lined up, so I usually take care of both of those steps at the same time. Here's the script for my sources after these two steps
Цитата:
MPEG2Source("c:\LITTLE_MERMAID\VTS_01.d2v")
TFM(pp=0).TDecimate()
dvd=Trim(30,379) + Trim(487,82117) + Trim(82138,0)
hdtv=DGSource("c:\The Little Mermaid 1989 1080p HDTV DD2.0 h264.dgi").Trim(7,0).AssumeFPS("ntsc_film")
upscale=dvd.ConvertToRGB().Spline36Resize(1914,1060,1,0,-1,-2).AddBorders(2,15,4,5).ConvertToYV12()
Interleave(hdtv,upscale)
Note that I converted the DVD source to RGB here to allow me to use AddBorders() with an odd number of pixels. The same would apply for Resize(). If you have to do that to get within 1 pixel, do it. Remember, you can't be off by more than 1.
Here's the result so far. Note that although the DVD is considerably less sharp and has ringing and different colors and all that, it doesn't matter. Those, we can fix. The frame-alignment and pixel-alignment are all down to the source , though. If everything matches on those, we're good to go.
HDTV

DVD

Next, you'll want to address the color issues. Most of the difference will probably come from the difference in standard HD vs SD color spaces. You can fix this with ColorMatrix(), or since I'm already converting to RGB for the resize, I can go ahead and address it there.
Цитата:
upscale=dvd.ConvertToRGB("PC.601").Spline36Resize(1914,1060,1,0,-1,-2).AddBorders(2,15,4,5).ConvertToYV12(matrix="PC.709")
PC.601->PC.709

That has gotten the sources really close, but you may want to do same additional tweaking. Again, since I've already converted to RGB for the both the resize and color space change, it's easy to throw in an AdjustRGB() to get them even closer. This is what I ended up with.
Цитата:
upscale=dvd.ConvertToRGB("PC.601").RGBAdjust(g=1.003,b=0.995,r=0.99).Spline36Resize(1914,1060,1,0,-1,-2).AddBorders(2,15,4,5).ConvertToYV12(matrix="PC.709").ColorYUV(gamma_y=1)
I won't bother with screens at this point since it's so close you can't see it on those anyway. That does, however, emphasize the fact that at each step, it's important to check your results throughout the length of the source, especially in different light levels and such. Most of the tweaking I did was to correct white levels.
Now that your sources are frame-matched, pixel-matched, and color-matched, you can start to think about getting rid of that logo. For the rest of the work, I'll crop down to just the logo area. That will improve performance since we still have some filtering to do. Make sure when you crop, you leave a healthy amount of margin around the logo since you'll want to feather in the DVD with the HDTV to avoid a harsh outline. And you'll probably want to make sure you crop to a mod-4 width since some filters won't work otherwise. I'm going with a 360x360 area.
Цитата:
hdtvc=hdtv.Crop(76,720,-1484,0)
upscalec=upscale.Crop(76,720,-1484,0)
Interleave(hdtvc,upscalec)
HDTV -------------->DVD

Next, you'll want to do whatever filtering you feel is necessary to make the DVD match the HDTV source as closely as you can. In this example, I want to de-ring (and denoise) the DVD and sharpen it a bit. Also remember that if you'll be scaling down to 720p from a 1080 source, that will hide some of the difference, so don't worry if they don't match exactly. Here's what I used for filtering, and the result.
Цитата:
upscalecf=upscalec.Overlay(StackVertical(upscalec.Crop(0,346,0,-8), upscalec.Crop(0,346,0,-8)).Blur(1.50),0,348).HQDering(220,0,Deen(upscalec,"a2d",4,12,12)).FastLineDarken().LSFMod(strength=192,SMode=2,SMethod=3).TemporalSoften(1,2,4).Deen("a2d",1,4,4).AddGrainC(0.9).AddGrainC(0.9)
HDTV-------------> Filtered

Again, it's not perfect, but it doesn't have to be. It's close enough.
Now that you have something that looks better than the logo and that will blend well, it's time to replace the logo with it. The last thing you'll need is a mask that separates the logo from the rest of the cropped area. I used Photoshop to modify a fully black frame with the logo on it to create the mask. Make the logo itself completely white and leave the rest of the frame black. Then expand the logo by a couple of pixels to make sure the edges are completely covered (even when compression artifacts smudge it) and feather it out so you get a nice blend. My mask for this logo looks like this:

Then you can use the Mask() and Layer() functions to replace the logo. Mask() creates the mask in the alpha channel of an RGB32 clip, so you'll need to convert everything to RGB32 before you call Mask() and Layer().
Цитата:
maskc=ImageSource("c:\dismask.png").Crop(76,720,-1484,0).ConvertToRGB32()
hdtvc.ConvertToRGB32().Layer(upscalecf.ConvertToRGB32().Mask(maskc)).ConvertToYV12()

Then, just overlay that back on the HDTV clip in the same spot it was cropped from
Цитата:
hdtv.Overlay(last,76,720).Trim(0,112110) + hdtv.Trim(112111,118667)

It looks good but will look even better after scaling to 720p.

And there you have it… ugly logo destroyed.
Пример работы вживую можно наблюдать, к примеру, вот тут.
[Профиль]  [ЛС] 

antical

Стаж: 11 лет

Сообщений: 57


antical · 31-Май-11 10:32 (спустя 4 дня)

MaLLIeHbKa
Спасибо большое!
Исчерпывающе.
С Русалочкой результат получился отличный. Но это все-же рисованная анимация, для меня она, чаще всего, выглядит одинаково почти в любом разрешении.
[Профиль]  [ЛС] 

MaLLIeHbKa

VIP (Заслуженный)

Стаж: 12 лет 5 месяцев

Сообщений: 3866

MaLLIeHbKa · 31-Май-11 11:08 (спустя 35 мин.)

Цитата:
Но это все-же рисованная анимация, для меня она, чаще всего, выглядит одинаково почти в любом разрешении.
Вот здесь во второй короткометражке аналогичным методом удален хардсаб. Можете оценить результат на живом видео (:
Модифицированный мануал:
скрытый текст
haroldnipps писал(а):
I've worked out a technique for removing hard-subs (used on Sabrina and The King and I so far, and more to come), so I thought I'd document it here for anyone else wanting to give it a go. There happen to be lots of high-bitrate Japanese HDTV sources (why can't we get nice HDTV bitrates in EU and US?) and the occasional Blu-ray that would be great if not for their burned-in subtitles, so here's how to remove them the (mostly) easy way…
This is basically an extension of the technique I wrote about here for removing logos using masking. The only difference here is that instead of creating a fixed mask in Photoshop and applying it to the whole movie, we'll build a dynamic mask and apply it only to the scenes with hard-subs. Don't worry, that part is easier than it sounds…
To do this, we'll start exactly the same way as with the logo masking method. We'll need two sources, frame-matched, pixel-matched, and color-matched. See the other guide for advice on that. I don't feel like re-addressing it here.
Just for a point of reference, here are my two sources, already matched up.
HDTV (WOWOW)--------------->DVD (Filtered)

And my script so far
Цитата:
DGSource("c:\tkai-wowow\c-tkai.dgi")
TFM().TDecimate()
hdtv=last.DeleteFrame(77413,77414,77415,110778).DuplicateFrame(116059,116060,116061).DeleteFrame(152164,168203)
MPEG2Source("c:\tkai-dvd\tkai.d2v", cpu=0)
TFM().TDecimate()
dvd=last.ConvertToRGB("PC.601").RGBAdjust(g=0.99).Spline36Resize(1919,1059).AddBorders(1,6,0,15) \
.ConvertToYV12(matrix="PC.709").Trim(72,0).TemporalSoften(1,4,4).AWarpSharp(6).LSFMod() \
.GrainFactory3(g1str=2,g2str=4,g3str=4,g1size=1.9,g2size=1.7,g3size=1.5,g1shrp=50,g2shrp=60,g3shrp=70)
interleave(hdtv,dvd)
As with the logo masking, that's really the hardest part. Once you get your sources matched, the rest is pretty straightforward. I'll start off by showing how to get the basic mask created to remove the subs, and then move on to refining it to eliminate any false matches that could degrade other parts of the picture. For this part, you'll need MaskTools V2 (get the latest version from http://manao4.free.fr/ ).
This technique relies on two basic facts:
1) Most subtitles are white.
2) Pure white areas are very rare in movies.
So that's it, really... I'll locate the white parts of the picture, assume they're subs, and replace them with the same pixels from the secondary source. MaskTools has some very powerful functions to do this kind of thing, and while I'm no expert on it, I've been able to get excellent results with just some basic operations.
If you're not familiar with masking at all, have quick glance again at my logo masking tutorial. The mask I used there was all black with a white area where the logo was. And that's all a mask is… black blocks off a pixel, white allows it through, and any other value between blends the pixel. The mask I used for the logo was pure white directly over the logo (so the secondary source would come through), black on the rest of the frame (to preserve the primary source) and feathered around the transition so the two sources would blend nicely and not leave a harsh line.
Likewise, to remove the subtitles, we want a mask that's pure white over the subtitle itself and black everywhere else. And don't confuse the white of the subtitles with the white of the mask. It's coincidence that they're the same color. They mean different things.
To locate the white areas in the subs, I'll be using the mt_lut() function. This function lets you write an expression and apply it to each and every pixel in a clip and return a new clip. It operates on each plane (Y,U, and V) separately as well. For now, we'll just be looking at the Y plane (luma) because we want to find the brightest (white) pixels. For most HDTV sources, anything with a luma value over 230 would be white (if you can increase this, do it, but 230 is a good starting point). What I want to do is build a mask where all the white pixels in the movie become white pixels in the mask and anything that's not white becomes black in the mask. The expression in English would say something like "if the pixel's luma value is > 230, make the mask pixel white (luma 255), else make it black (luma 0)", or in c-syntax "luma > 230 ? 255 : 0". MaskTools' expressions are written in reverse-polish notation, and mt_lut() provides the pixel's value for the given plane in variable 'x', so we switch that around so the expression ends up as "x 230 > 255 0 ?". This one little bit of code creates the mask.
Цитата:
mask=hdtv.mt_lut(yexpr="x 230 > 255 0 ?")
And here's what the mask looks like for the above frame.

A few noteworthy things about the mask
1) You can still see a shadow of the original frame in there. This is because I applied the mt_lut() expression to only the luma plane by using 'yexpr='. This passes the other 2 planes through untouched. It doesn't matter since we'll be ignoring them anyway, and I kind of like the ghost in there because it helps me see what else is going on (like the white dots on her earring and sleeve, which we'll deal with later)
2) The subtitles aren't completely white in the mask (they have black specks in them). This is because they weren't completely white in the original frame (usually from compression artifacts).
3) We did nothing about the black outlines of the subs. They just stayed back, meaning they'll stay in the clip if we do nothing about them.
So point 1) wasn't as issue, but the other two are, and we'll deal with them next. But first I'd like to merge the two sources through the mask and see where we are. mt_merge() does this. It takes the two clips and the mask as parameters, along with a flag that says whether to only use the luma plane (which we want to do). But to keep things more visible, instead of using the DVD as my second clip, I'm going to create a red clip and use that.
Цитата:
red=BlankClip(200000,1920,1080,"YV12",24000,1001,0,color=$ff0000)
removed=mt_merge(hdtv, red, mask, true)
And here's the result

Notice the pure white pixels from the subs have indeed been replaced, but the not-quite-white specs and black outlines remain. To fix this, we'll expand the mask a bit to make it cover more. MaskTools has handy functions for that too: mt_expand(). I'll be using it with the 'both' mode which uses a diamond pattern to expand and will keep the outinline clean, just like the black outlines on the subs. Each call to mt_expand() will stretch it out by a couple of pixels, so it will take several to get all the way to the edge of the black outline. Here's what I have
Цитата:
emask=mask. mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both")
removed=mt_merge(hdtv, dvd, emask, true)
And the mask and resulting frame.

As you can see, most of the black outlines are covered now and are, therefore, replaced in the final clip. Note that the small dots on the earring and sleeve are growing too, in a diamond shape (and they're starting to bleed in the merged clip). That's not good, but we'll come back to that.
To get rid of the subs completely, we just need to go a little further out. But at this point, I'd like to start blurring the mask a bit to get a feathering effect so the two sources will blend more nicely at the edges. For this, I'll use mt_convolution(), which is basically a blurring function. I'll also switch over to the default mode of mt_expand(), which is a square shape, so we get everything covered. And I'll chain several of them together on the mask. The last mt_convolution() uses some large numbers to get an extra big blur
Цитата:
emask=mask.mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both") \
.mt_expand().mt_convolution().mt_expand().mt_convolution().mt_expand().mt_convolution().mt_expand().mt_convolution("50 100 50")
The number of calls to mt_expand will vary based on the source and thickness of the outlines, so experiment and make sure you get enough to cover the subs but not too much. Remember, we're replacing those pixels from a lower-quality source, so we want to do as little as possible.
And the results again

The subs are gone!
The only problem we have left now is that we replaced some areas that weren't subtitles (the red dots on the ear and sleeve), and we really don't want to do that. The simplest fix for that is just to make sure anything outside the area where subtitles might be is black in the mask. So I'm going to crop out the possible subtitle area from the clip and overlay it on a black clip, which will guarantee nothing outside the subtitle area gets replaced. Basically, we're limiting the potential damage of the inferior clip.
Цитата:
blank=BlankClip(200000,1920,1080,"YV12",24000,1001,0)
subarea=blank.Overlay(hdtv.Crop(360,768,-360,-174),360,768)
mask=subarea.mt_lut("x 230 > 255 0 ?")
Here's the 'subarea' clip, the mask, and the result. You'll need to make sure your cropped area completely covers the largest subtitle in the movie, so look through for the biggest one you can find, and then pad a little beyond that. In this case, there's a lot of padding, but it's necessary for other scenes/subs.

Well that's pretty damn good, but there's still a small area being replaced that shouldn't be. Look at her watch. There's a light glint on there that came up in the mask and got covered in red. Even with most of the screen now covered in black in the mask, it's inevitable you'll have certain bright things that get caught in the mask. We'd like to get rid of that as much as possible.
Remember I said we'd be looking for white to replace the subs and that white was rare? Well, that glint on her watch isn't white; it's just bright. Looking only at the luma values, we can't tell the difference between those two. And in a black and white film that's as good as it gets. But in a color film, we can eliminate anything that happens to be bright but that isn't pure white. We do that by examining the chroma planes (U and V). This is a little complicated, but what I'd like to do is take the mask I started with (from the original mt_lut) and black out any pixels that are in it that weren't pure white. To do this, I'll use the mt_lutxy() function, which functions similarly to mt_lut() but lets me look at the pixels from two frames instead of one. I'll take the original mask, and look at the U and V planes of the original clip, and anywhere the pixels are bright but not white, I'll black them out to create a new, smaller mask.
There are a couple of things you need to know to understand this next bit…
1) In the chroma planes of YV12, each pixel represents a 2x2 block, meaning they have half the dimensions of the luma plane (960x540 for 1080p)
2) Greyscale pixels (or pure white or black) have a value 128 for both chroma values.
So if we take the chroma plane and double its size, we can make a pixel-for-pixel comparison of it and the luma plane. And if the value of a given pixel in both chroma planes isn't 128 or very close to it, the pixel isn't pure white. And mt_lutxy() lets us compare pixels from 2 clips. I think we have something here… The only tricky part is mt_lutxy() doesn't let us compare across planes, so we need to move the chroma data into the luma plane to combine it with the original mask's luma. The UtoY() and VtoY() functions do just that. With those and nnedi3's size-doubling functions, we can do what we want.
Цитата:
wmask=mask.mt_lutxy(UtoY(subarea).nnedi3_rpow2(2),yexpr="y 124 - 132 y - & x 0 ?") \
.mt_lutxy(VtoY(subarea).nnedi3_rpow2(2),yexpr="y 124 - 132 y - & x 0 ?",expr="128")
emask=wmask.mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both").mt_expand(mode="both") \
.mt_expand().mt_convolution().mt_expand().mt_convolution().mt_expand().mt_convolution().mt_expand().mt_convolution("50 100 50")
removed=mt_merge(hdtv, red, emask, true)
In the my_lutxy() expressions, x is the pixel from the original mask (before expanding), and y is the chroma value from the black clip with the subtitle area overlayed. If the pixel in there has a chroma value between 124 and 132 (128 +/- 4), It's greyscale, so we keep the pixel intact in the mask (by using the x value). If the value is outside that range, we set the value to 0, eliminating it from the mask. We save the result of that into a new mask and do the expanding and blurring on that instead.
And here's the new result. Notice the spot on the watch is now untouched.

So that's it. Now I'll mask in the DVD frame instead of the red one, and you can see the subs are gone and the replaced pixels are blended.

But there are still two issues remaining. First, although we eliminated the bright-but-not-white pixels from being replaced, there will still be some pure white pixels in the film that happen to fall into the subtitle area, and they're going to get replaced. If they're in a frame with a subtitle, this is unavoidable. But if there's no subtitle in the frame at all, we could just skip the whole thing and replace nothing. Which leads me to the second issue: all this processing is SLOW. If we could quickly decide whether a frame has a subtitle at all and skip it if it doesn't, we could take care of both issues at once.
So I'll add one more thing. The ConditionalFilter() function lets us evaluate an expression and return either one of two clips based on the result. If I look at the original mask, just after the mt_lut(), which is relatively fast to do, if I don't see a certain amount of white on there, there must not have been any subs. The AvergageLuma() function is evaluated for each frame, and on a very black frame (like the mask when there are no subs present), the value will be 0 or very close to it. So we add this:
Цитата:
conditionalfilter(mask, hdtv, removed, "AverageLuma()", "<", "0.05", false)
This says if the average luma value of the mask for a given frame is less than 0.05 (very black), pass through the hdtv source untouched, otherwise, do all that processing we defined and return the 'removed' clip. You can use a larger value if the subs are always big, but in this example because most subs are in the black bar, sometimes the subs in the frame are tiny.
And that's it. Just crop and/or resize that, and encode away…
[Профиль]  [ЛС] 

antical

Стаж: 11 лет

Сообщений: 57


antical · 05-Июн-11 23:33 (спустя 5 дней, ред. 05-Июн-11 23:33)

MaLLIeHbKa
Спасибо!
Тут просто высший пилотаж!
Набор всяких сложностей. И главное, что метод вами проверен и сработал как надо:
https://rutracker.org/forum/viewtopic.php?t=3590638
[Профиль]  [ЛС] 

umida1980

Стаж: 8 лет 10 месяцев

Сообщений: 131

umida1980 · 27-Сен-11 20:09 (спустя 3 месяца 21 день)

Извените за беспокоиство, пожалуйста подскажите мне как сохранит после удаление логотипов тв канала , я сделал как указано с помощю VirtualDub, Logoway после этого нажимаю на сохранит но там долго обрабативает файл и такое огромное размер, обычные dVix с 200mb мультфильм такое большле размером обрабатвается, пожалуюста бодробно обясните спасибо за ранее
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 29-Сен-11 14:53 (спустя 1 день 18 часов, ред. 29-Сен-11 17:01)

Video - Compression - выбираешь вот такой кодек

правда надо заметить что я сама этого никогда не делаю предпочитаю экспортировать в несжатый а потом конвертнуть (прогой Format Factory) в нужный размер, правда имею практически всегда дело только с клипами а они длительностью небольшие, так что 5 и даже 10 гиг на харде не проблема
=============
а полностью и абсолютно незаметно Вам не уберет лог ни одна прога , абсолютно незаметно его только в тех случаях когда лог располагается на полностью однотонной поверхности но такого практически не бывает...
в общем чем больше лог тем больше следов, можно сделать более заметно или менее заметно ( все зависит от конкретного клипа) но сделать видео "как новенькое" - ну это разве что каждый кадр подрисовывать и то наверно не в Фотошопе а какой либо более проффессиональной проге специализированной именно для видео, так как мало удачно подрисовать каждый кадр в отдельности, не надо забывать что этих кадров самое малое несколько тысяч и они все время движутся так что мало одного терпения надо еще уметь их синхронизировать между собой...
но я все же предпочитаю затереть, логотипы каналов ТВ трогаю редко а вот всякие идиотские автографы Васей Пупкиных, адреса их сайтов и прочее - тру нещадно. мне лично гораздо приятнее смотреть где то с полосой чем с ними.
а насчет долгой обработки файла - тут уже не поможешь ничем , если слабый комп то только менять его на более мощный иначе будет обрабатывать действительно очень и очень долго, правда еще зависит от того какой режим в фильтре logoaway выбрать - XY работает очень быстро, Unglarm - очень долго, так что если без разницы то выбрать надо XY правда есть случаи когда он не подходит ( дает не тот результат ) и нужен именно Unglarm - тут уж ничего не поделаешь
вообще то я сама для монтажа и дальнейшей обработки всегда пользую только Mpeg Video Wizard а Virtual Dub пользую только из за упомянутого плагина , в Мпеге такого нет ( это еще одна причина по которой я всегда экспортирую в несжатый так как потом все равно конвертить в МПЕГ а много сжатий не есть хорошо)
[Профиль]  [ЛС] 

Andrewz64

Стаж: 9 лет 4 месяца

Сообщений: 37

Andrewz64 · 28-Окт-11 16:40 (спустя 29 дней)

FUSHA ^_^
Простая программа - Remove Logo Now!
На русском, настройки кое-какие есть. Долго. Но это все будут долго делать. Но в целом не плохо, если нет времени или желания узнать все премудрости VD, AS .., а нужно просто убрать на фиг и кино смотреть.
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 09-Ноя-11 06:14 (спустя 11 дней)

все равно изображение которое было под логом ни одна прога не восстановит такого чуда еще не придумали так что как бы ни была хороша а все одно и тоже
единственное что хочу спросить - есть ли что подобное для движущихся и прыгающих надписей? Можно конечно постараться убрать их по одной букве но это ж задолбаешься - того не стоит
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 18:27 (спустя 1 месяц 22 дня, ред. 01-Янв-12 18:27)

подскажите пожалуйста!логотип на черных полосах,как его можно закрыть черным прямоугольником и каким самым безболезненным образом можно избавиться от такой штуки http://youtu.be/fMF_ACFhAeA
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 01-Янв-12 18:30 (спустя 2 мин., ред. 01-Янв-12 18:30)

фильтр Logoaway - выбрать режим Solid Fill
[img=http://s7.postimage.org/9tph1xobr/river.jpg]
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 19:15 (спустя 45 мин., ред. 01-Янв-12 19:15)

Heaven Cat
Спасибо лого помогло закрыть ,осталось с баннером разобраться,а если вместах где выскакивает баннер добавить по высоте черную полосу или же может вырезать как -то эту полоску с баннером а видео растянуть,только как это реализовать?
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 01-Янв-12 19:35 (спустя 19 мин.)

можно добавить черноты а можно отрезать - а видео растянуть только пропорции изменятся если растягивать только в одну сторону либо придется немногои в стороны растянуть - Вам то самому как больше будет нравится подумайте
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 19:57 (спустя 22 мин.)

Heaven Cat
нашел сжатый другой исходник без баннера,можно взять с него эти фрагметы и перекрыть ими баннер?,это наверно был бы идеальный вариант,если можно подскажите пожалуйстта как это реализовать
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 01-Янв-12 19:59 (спустя 2 мин.)

тут же немного повыше пост от 27-Май-11 01:51
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 20:07 (спустя 7 мин., ред. 01-Янв-12 20:07)

Heaven Cat
я видел ,но к сожалению ничего там не понял),если сможете обьяснить ,что да как буду очень признателен,спасибо
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 01-Янв-12 20:20 (спустя 13 мин., ред. 01-Янв-12 20:20)

Это Вам в Ависинт насколько понимаю я сама с ним на "ВЫ" такого сама никогда не делала к сожалению
в общем как понимаю принцип такой - наложить участок из видео с меньшим разрешением на видео с большим и притом чтобы наложение произвести предельно аккуратно - чтобы кадр с которого начнете наложение и тот с которого взят кусок совпали точно до фрейма и чтобы участок выбрать с точность. до пикселя и к тому же надо привести цветовую гамму обоих видео к общему знаменателю так как в видео из разных источников она как правило разная думаю это можно реализовать не только в ависинте но.. к сожалению мой практический опыт тут равен нулю только думала на эту тему а вот сделать не пыталась ни разу
а так то в Дубе такого не сделаете точно... это Вам в что нибудь классом не ниже пинакля - а Дуб не позволяет накладывать одно видео на другое.. или может возможно в последних версиях Фотошопа
или если чего http://avisynth.org/mediawiki/Main_Page/ru
или вот еще нашла страничку
http://avisynth.org.ru/docs/russian/
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 20:48 (спустя 27 мин.)

Heaven Cat
А Вы как считаете ,как мне поступить в данном случае?в вегасе можно накладывать на определенные области,но тогда наверное придется "десять" раз пережимать,или же в дабе image sequence и в фотошоп,там четыре раза баннер выскакивает где-то по 10сек.,это значит где-то 900 картинок,наверное перебор) или же все-таки вырезать часть картинки дабом и пусть чуть чуть пропорции нарушаться,совсем запутался чего-делать?)
скрытый текст
[Профиль]  [ЛС] 

Heaven Cat

Стаж: 9 лет 3 месяца

Сообщений: 1190

Heaven Cat · 01-Янв-12 20:58 (спустя 10 мин.)

ну если хотите как проще и побыстрее тогда однозначно - пожертвовать частью картинки - опять же в конечн м счете только Вам смотреть и решать - скажу честно в Вегасе я никогда не работала и не знаю как там и чего... я же говорю - никогда не делала такого
[Профиль]  [ЛС] 

fortovui

Стаж: 11 лет 7 месяцев

Сообщений: 316

fortovui · 01-Янв-12 21:19 (спустя 20 мин.)

Heaven Cat
а как в дабе можно реализовать вырез этой части картинки ,именно в этих местах где выскакивает баннер?
[Профиль]  [ЛС] 
 
Ответить
Loading...
Error