版面规则
提问时请注意:尽量详细描述操作过程、AVS脚本内容等,最好能写出片名,只贴图有时无法看出问题原因。
提示:发布原创内容请尽量使用附件上传。使用网盘会出现过期失效的问题,请注意。
cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

看图理解Ring和Halo

2010-09-20 22:23

之前在nmm群里提出过这个问题,ring和halo怎样区分。
当时liti大大以专业知识讲解了这两者的产生缘由,不过,非专业的我是看得一头雾水。

然后,昨天下到Nadia的DVDISO,厚厚地一圈ring/halo,在使用HQDering和Dehalo这两个脚本处理的时候,对ring和halo有了一定的直观认识。

本文假定HQDering和Dehalo这两个脚本对ring和halo的定义无误,通过观察使用这两个脚本对Nadia画面的处理效果来认识ring/halo。

首先来看VOB原图(图0)
1.orig.jpg
接着看几幅处理效果图
Dehalo(图1)
2.dehalo.jpg
HQDering(图2)
2.HQDering.jpg
Dehalo然后HQDering(图3)
4.dehalo dering.jpg
HQDering然后Dehalo(图4)
5.dering dehalo.jpg
观察各图对比效果如下:
图0-1:光圈基本上去除了,线条外还留下浅浅的一圈线
图0-2:光圈的厚度稍微减少了一点
图0-3:光圈去除
图0-4:跟图1相似,不过残留的线圈要小一点

用mspaint简单地画了一下我的理解图
外面的一圈红色边缘为Ring,蓝色的圆环部分为Halo
图片

头像
又疯了一个
帖子: 3
注册时间: 2010-09-28 22:14

Re: 看图理解Ring和Halo

2010-09-28 22:50

额,基本上都能接受了,还真看不出有啥变化。。

Akari
帖子: 9
注册时间: 2012-05-25 18:04

Re: 看图理解Ring和Halo

2012-10-19 14:17

求助大大们啊!为什么我用BlindDeHalo这个脚本一直出错?
there is no function named "Dedgemask"
有调用了masktool.dll和undot.dll了
付一下BlindDeHalo的脚本:

代码: 全选

# BlindDeHalo - v0.1 # # This script removes the light & dark halos from too strong "Edge Enhancement" # Adaption of the parameters has to be done manually for each source, the function is not adaptive. # # Needed Plugins: MaskTools.dll >= 1.4.15 # undot.dll # function BlindDeHalo( clip clp, int "strength", int "radius_x", int "radius_y", float "darkamount", string "mode", float "maskblur", bool "fullframe" ) { strength = default( strength, 80) radius_x = default( radius_x, 2) radius_y = default( radius_y, 2) darkamount = default( darkamount,1.0) mode = default( mode, "soft") maskblur = default( maskblur, 1.0) fullframe = default( fullframe, false) modus = mode=="hard" ? "hardlight" : "softlight" ox = clp.width oy = clp.height rx = sqrt(radius_x) ry = sqrt(radius_y) clp edge=Dedgemask(0,255,0,255,"6 10 6 10 -64 10 6 10 6",setdivisor=true,divisor=64).levels(2,0.5,6,0,255,false).undot#.coloryuv(analyze=true)# blur1 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4,-1.0,1.0).lanczosresize(ox,oy) blur2 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4, 1.0,0.0).lanczosresize(ox,oy) diff = YV12subtract(blur1,blur2) overlay(diff,diff,mode="hardlight").levels(0,1.0,255,88,168,false) darkamount == 1.0 ? NOP : overlay(last,last.levels(0,1.0,128,int(128-128*darkamount),128,false),mode="lighten") overlay(last,last.levels(0,1.0,255,128+strength,128-strength,false)) # levels reversed: no more "invert" in below overlay() overlay(clp,last.greyscale.blur(maskblur),mode=modus) fullframe ? NOP : MaskedMerge(clp,last,edge.deflate.expand.blur(1.58).inflate,useMMX=true) return(last) } #
还有我的avs脚本:

代码: 全选

LoadPlugin("G:\Plugins\DGIndex\DGDecode.dll") LoadPlugin("G:\Plugins\QTGMC\Undot.dll") LoadPlugin("G:\Plugins\TIVTC\TIVTC.dll") LoadPlugin("G:\Plugins\QTGMC\mt_masktools-26.dll") Import("G:\Plugins\QTGMC\BlindDeHalo.avs") mpeg2source("VTS_01.d2v") tfm(d2v="",order=1,mode=1,PP=3) tdecimate(mode=1) BlindDeHalo()

头像
翡璃月
帖子: 78
注册时间: 2010-11-11 23:36
来自: 台灣宜蘭
联系: 网站

Re: 看图理解Ring和Halo

2012-10-19 15:52

dehalo殺比較大
這是結論?
图片

lwjkk666
帖子: 309
注册时间: 2012-05-29 13:43

Re: 看图理解Ring和Halo

2012-10-25 10:16

Akari 写了:求助大大们啊!为什么我用BlindDeHalo这个脚本一直出错?
there is no function named "Dedgemask"
有调用了masktool.dll和undot.dll了
付一下BlindDeHalo的脚本:

代码: 全选

# BlindDeHalo - v0.1 # # This script removes the light & dark halos from too strong "Edge Enhancement" # Adaption of the parameters has to be done manually for each source, the function is not adaptive. # # Needed Plugins: MaskTools.dll >= 1.4.15 # undot.dll # function BlindDeHalo( clip clp, int "strength", int "radius_x", int "radius_y", float "darkamount", string "mode", float "maskblur", bool "fullframe" ) { strength = default( strength, 80) radius_x = default( radius_x, 2) radius_y = default( radius_y, 2) darkamount = default( darkamount,1.0) mode = default( mode, "soft") maskblur = default( maskblur, 1.0) fullframe = default( fullframe, false) modus = mode=="hard" ? "hardlight" : "softlight" ox = clp.width oy = clp.height rx = sqrt(radius_x) ry = sqrt(radius_y) clp edge=Dedgemask(0,255,0,255,"6 10 6 10 -64 10 6 10 6",setdivisor=true,divisor=64).levels(2,0.5,6,0,255,false).undot#.coloryuv(analyze=true)# blur1 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4,-1.0,1.0).lanczosresize(ox,oy) blur2 = bicubicresize(int((ox/rx)/4 +.5)*4,int((oy/ry)/4 +.5 )*4, 1.0,0.0).lanczosresize(ox,oy) diff = YV12subtract(blur1,blur2) overlay(diff,diff,mode="hardlight").levels(0,1.0,255,88,168,false) darkamount == 1.0 ? NOP : overlay(last,last.levels(0,1.0,128,int(128-128*darkamount),128,false),mode="lighten") overlay(last,last.levels(0,1.0,255,128+strength,128-strength,false)) # levels reversed: no more "invert" in below overlay() overlay(clp,last.greyscale.blur(maskblur),mode=modus) fullframe ? NOP : MaskedMerge(clp,last,edge.deflate.expand.blur(1.58).inflate,useMMX=true) return(last) } #
还有我的avs脚本:

代码: 全选

LoadPlugin("G:\Plugins\DGIndex\DGDecode.dll") LoadPlugin("G:\Plugins\QTGMC\Undot.dll") LoadPlugin("G:\Plugins\TIVTC\TIVTC.dll") LoadPlugin("G:\Plugins\QTGMC\mt_masktools-26.dll") Import("G:\Plugins\QTGMC\BlindDeHalo.avs") mpeg2source("VTS_01.d2v") tfm(d2v="",order=1,mode=1,PP=3) tdecimate(mode=1) BlindDeHalo()
LZ用26的AVISY吗

cunhan
核心会员
核心会员
帖子: 214
注册时间: 2010-09-20 22:09

Re: 看图理解Ring和Halo

2012-10-25 11:53

BlindDeHalo需要的是1.x的masktools
但是你的avs加载的是2.x的,1和2是不兼容的。
在这里能下到1.x的masktools http://manao4.free.fr/

PS:这也只是我看avs估计的问题而已。同学你最好把avs显示的错误一并发出来。不要只发avs让别人猜度。

头像
sammysui
帖子: 85
注册时间: 2012-07-06 20:13

Re: 看图理解Ring和Halo

2012-10-26 12:55

dering,dehalo.效果不错,唯一的问题是对细节的损失太大,对于动画细节损失不太明显,真人影片就会有很多细节损失。有时候,明明是很重的halo,ring。都不敢用dering,dehalo。。。无奈啊

头像
yabbay
帖子: 62
注册时间: 2012-05-31 10:39
来自: Tokyo

Re: 看图理解Ring和Halo

2012-11-02 11:51

万年用YAHRmod和Dehalo_Alpha_mt的撸过...
          .∧__,,∧
         ( ´・ω・`) ブルブル
          (つまくら) アリと明日(ant and tomorrow)
          `u―u´ レッツ・エッグ・ペイン(Let`s egg pain)

回到 “AviSynth”