『漫游』酷论坛>『影音数码技术学习交流』>求助关于一个AVS滤镜 ..

求助关于一个AVS滤镜问题

ralphgu@2005-01-18 15:22

:p 就是关于MFRAINBOW的使用

function mfRainbow(clip input, string "mode", float "clipstren", \
int "strength", bool "post") {

mode = Default(mode, "slowest") # processing speed, slow-slower-slowest
strength = Default(strength, 255) # processing strength, 0-255
clipstren = Default(clipstren, 5.0) # value clipping strength, 0.0-10.0
post = Default(post, true) # spatial postprocessing on/off

inputrgb = input.ConvertToRGB32()

edgemask = input.EdgeMask(0, "sobel").Inflate().GreyScale() .\
Levels(0, clipstren, 255, 0, 255).ConvertToRGB32()

derainbow = (mode == "slow" ? input.Deen("a3d",4,0,40,50) : \
(mode == "slower" ? input.Deen("a3d",4,0,20,50).Deen("a3d",4,0,20,50) : \
(mode == "slowest" ? input.Deen("a3d",4,0,15,50).Deen("a3d",4,0,15,50) .\
Deen("a3d",4,0,15,50).Deen("a3d",4,0,15,50) : Assert(false, "available modes: \
slow, slower, slowest")))).ConvertToRGB32()

maskedrainbow = Mask(derainbow, edgemask)
edgerainbow = Layer(inputrgb, maskedrainbow, "add", strength)


semifinal = input.MergeChroma(edgerainbow.ConvertToYV12())
blah = semifinal.MSmooth() # cause of a weird argument error
final = semifinal.MergeChroma(blah)

return post ? final : semifinal

}

这个貌似可以在YV12下去rainbow,但是看它的定义,似乎有颜色场的转换

:( 但是我使用时,用VDM读入AVS时,如下提示

Script error:Invalid Arguments of Function "Edgemask"

why?
所需要的fitler:MSmooth,MaskTools-v1.5.5.dll,Deen.dll
都已加载
AVISYNTH版本2.55

LoadPlugin("f:\AVS-plugins\MaskTools-v1.5.5.dll")
LoadPlugin("f:\AVS-plugins\Msmooth.dll")
LoadPlugin("f:\AVS-plugins\Deen.dll")
AviSource("tx.avi").ChangeFPS(23.976).mfRainbow("slowest",255,5.0,true)
引用

alcaid@2005-01-18 16:00

MFRAINBOW这个AVS我用过,速度狂慢,而且去彩虹斑的效果并不好,建议还是去找好一点的片源吧^_^
引用

wolfsoft@2005-01-18 16:36

EdgeMask没定义

在edgemask = input.EdgeMask(0, "sobel").Inflate().GreyScale() .\这句之前找不到EdgeMask的定义(如plugin读取等等).你弄来的大概是个不完全版.
引用

ralphgu@2005-01-18 18:30

引用
最初由 alcaid 发布
MFRAINBOW这个AVS我用过,速度狂慢,而且去彩虹斑的效果并不好,建议还是去找好一点的片源吧^_^


:D没有,就是想用用这个东西而已

:confused: 晕,再AVISYNTH那里下的……还有不完全的说法……
我再去看看

看玩归来

http://www.avisynth.org/index.php?page=mfRainbow
没感觉有差啊,莫非是所需的FILTER的版本问题?:(
引用

wolfsoft@2005-01-18 18:50

LoadPlugin("f:\AVS-plugins\MaskTools-v1.5.5.dll")
LoadPlugin("f:\AVS-plugins\Msmooth.dll")
LoadPlugin("f:\AVS-plugins\Deen.dll")

把这三句加到你那个脚本里试试,那个EdgeMask可能是masktool里的.
另,你怎么搞到masktool的?我用代理都连不上那个死网站:(
引用

weilai@2005-01-18 20:45

edgemask = input.EdgeMask(0, "sobel").Inflate().GreyScale() .\
Levels(0, clipstren, 255, 0, 255).ConvertToRGB32()

這算是一行
但後面的 GreyScale() .\ 應該是 GreyScale(). \
才對
所以試試看改正

P.S.這個語法錯誤還有下面兩處
引用

ralphgu@2005-01-18 22:50

引用
最初由 wolfsoft 发布
LoadPlugin("f:\AVS-plugins\MaskTools-v1.5.5.dll")
LoadPlugin("f:\AVS-plugins\Msmooth.dll")
LoadPlugin("f:\AVS-plugins\Deen.dll")

把这三句加到你那个脚本里试试,那个EdgeMask可能是masktool里的.
另,你怎么搞到masktool的?我用代理都连不上那个死网站:(


这个肯定是有调用的……
:p me忘了,这几天逛DOOM9,无意中下的,具体地址。。。。。


引用
最初由 weilai 发布
edgemask = input.EdgeMask(0, "sobel").Inflate().GreyScale() .\
Levels(0, clipstren, 255, 0, 255).ConvertToRGB32()

這算是一行
但後面的 GreyScale() .\ 應該是 GreyScale(). \
才對
所以試試看改正

P.S.這個語法錯誤還有下面兩處


:confused: WEILAI兄说的是否是那个SPACE应该在().和\之间对吧

如果是的话,后面我只看到有一个而已,一共2处

:( 我试过了,试了两次,一次是改2处,一次改了4处(把冒号处也改了),错误同前
引用

NovemberRain@2005-01-19 05:02

呵呵,角本没错,看看你DEEN的版本吧,最老版MFRAINBOW了,不过MF写的东西都不怎么好用,哪版都一样!
引用

ralphgu@2005-01-19 10:01

最近才看到么
昨天又下了个0.3版的
我上面贴的是0.1版的

不过照样不好用……
郁闷一下,去翻翻新的版本去,再看看

找到MASKTOOLS的地址了

http://manao4.free.fr/MaskTools-v1.5.5.dll

DOOM9的帖子是这个
http://forum.doom9.org/showthread.php?s=&threadid=74003&highlight=blinddehalo
引用

wolfsoft@2005-01-19 10:49

那个kurosu站真的kurosu了,可恨啊....这个法国站能连
引用

| TOP