Reformer
From Avisynth wiki
(Difference between revisions)
(→Requirements) |
(→Syntax and Parameters) |
||
Line 20: | Line 20: | ||
== [[Script variables|Syntax and Parameters]] == | == [[Script variables|Syntax and Parameters]] == | ||
− | :{{Template:FuncDef| | + | :{{Template:FuncDef| Reform (clip, clip, string "resize", float "ltopx", float "ltopy", float "lbotx", float "lboty", float "rtopx", float "rtopy", float "rbotx", float "rboty", float "leftx", float "rightx", float "ytop", float "ybot", bool "qr", bool "norm")}} |
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
− | ::: | + | ::: Clip to be skewed into quadrilateral or deskewed into rectangle |
<br> | <br> | ||
::{{Par2| |clip| }} | ::{{Par2| |clip| }} | ||
− | :::background | + | ::: Clip to be used as background |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|resize|string|"cubic"}} |
− | ::: | + | ::: Radius of grid to use |
− | + | :::* "lanczos" | |
+ | :::* "cubic" | ||
+ | :::* "line" | ||
+ | :::* "point" | ||
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|ltopx|float|0}} |
− | ::: | + | ::: Q left top x coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|ltopy|float|0}} |
− | ::: | + | ::: Q left top y coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|lbotx|float|0}} |
− | ::: | + | ::: Q left bottom x coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|lboty|float|frame height - 1}} |
− | ::: | + | ::: Q left bottom y coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rtopx|float|frame width - 1}} |
− | ::: | + | ::: Q right top x coordinate |
− | + | ||
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rtopy|float|0}} |
− | ::: | + | ::: Q right top y coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rbotx|float|frame width - 1}} |
− | ::: | + | ::: Q right bottom x coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rboty|float|frame height - 1}} |
− | ::: | + | ::: Q right bottom y coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|leftx|float|0}} |
− | ::: | + | ::: R left x coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|rightx|float|frame width - 1}} |
− | ::: | + | ::: R right x coordinate |
<br> | <br> | ||
− | ::{{Par2| | + | ::{{Par2|ytop|float|0}} |
− | ::: | + | ::: R top y coordinate |
− | + | ||
− | + | ||
<br> | <br> | ||
+ | ::{{Par2|ybot|float|frame height - 1}} | ||
+ | ::: R bottom y coordinate | ||
+ | <br> | ||
+ | ::{{Par2|qr|bool|true}} | ||
+ | ::: R bottom y coordinate | ||
+ | :::* true = q to r | ||
+ | :::* false = r to q | ||
+ | <br> | ||
+ | ::{{Par2|norm|bool|false}} | ||
+ | ::: Whether normalised coordinates are specified? | ||
+ | :::* true = normalized | ||
+ | :::* false = real | ||
<br> | <br> | ||
− | |||
== Examples == | == Examples == |
Revision as of 21:07, 18 June 2018
Abstract | |
---|---|
Author | V.C.Mohan |
Version | 9 Apr 2018 |
Download | movePlus.7z |
Category | External filters |
License | GPLv2 |
Discussion | Reformer plugin |
Contents |
Description
Reform uses matrix algebra for transformations. Reform has two modes viz: rectangle to quadrilateral and quadrilateral to rectangle. Lanczos or cubic or linear or nearest point interpolation methods can be opted. Full Description
Requirements
- AviSynth+ r2347 or later
Syntax and Parameters
- Reform (clip, clip, string "resize", float "ltopx", float "ltopy", float "lbotx", float "lboty", float "rtopx", float "rtopy", float "rbotx", float "rboty", float "leftx", float "rightx", float "ytop", float "ybot", bool "qr", bool "norm")
- clip =
- Clip to be skewed into quadrilateral or deskewed into rectangle
- clip =
- clip =
- Clip to be used as background
- clip =
- string resize = "cubic"
- Radius of grid to use
- "lanczos"
- "cubic"
- "line"
- "point"
- Radius of grid to use
- string resize = "cubic"
- float ltopx = 0
- Q left top x coordinate
- float ltopx = 0
- float ltopy = 0
- Q left top y coordinate
- float ltopy = 0
- float lbotx = 0
- Q left bottom x coordinate
- float lbotx = 0
- float lboty = frame height - 1
- Q left bottom y coordinate
- float lboty = frame height - 1
- float rtopx = frame width - 1
- Q right top x coordinate
- float rtopx = frame width - 1
- float rtopy = 0
- Q right top y coordinate
- float rtopy = 0
- float rbotx = frame width - 1
- Q right bottom x coordinate
- float rbotx = frame width - 1
- float rboty = frame height - 1
- Q right bottom y coordinate
- float rboty = frame height - 1
- float leftx = 0
- R left x coordinate
- float leftx = 0
- float rightx = frame width - 1
- R right x coordinate
- float rightx = frame width - 1
- float ytop = 0
- R top y coordinate
- float ytop = 0
- float ybot = frame height - 1
- R bottom y coordinate
- float ybot = frame height - 1
- bool qr = true
- R bottom y coordinate
- true = q to r
- false = r to q
- R bottom y coordinate
- bool qr = true
- bool norm = false
- Whether normalised coordinates are specified?
- true = normalized
- false = real
- Whether normalised coordinates are specified?
- bool norm = false
Examples
## This is some example code to blur an image. imagereader("C:\..........jpg", end = 10) a = avisource("C;\..........avi").converttoYUY2() converttoyv16() # Rectangle to quadrilateral r2q(last,last,leftx = 100,rightx = 400, ytop = 200, ybot = 480,ltopx=200,ltopy=150, rbotx = 500, rboty = 400, resize= "lanczos") # quad to rectangle excercise c= last
- bg = blankclip(last,color = 0)
ScriptClip("""
h = height(bg)-1 w = width(bg)-1
t = 0.061 *(current_frame) t2 = 0.127 *( current_frame) a = 0.501 + 0.5 * sin(t/pi) t1x = (-0.2*cos(t2)) * w t1y = (0.5-0.5*cos(t2)) * h t2x = (1.0+0.2*cos(t2)) * w t2y = (0.5-0.5*cos(t2)) * h t3x = (1.0+0.2*cos(t2)) * w t3y = (0.5+0.5*cos(t2)) * h t4x = (-0.2*cos(t2)) * w t4y = (0.5+0.5*cos(t2)) * h c1x = (0.5+a*cos(t)) * w c1y = (0.5+a*sin(t)) * h c2x = (0.5-a*sin(t)) * w c2y = (0.5+a*cos(t)) * h c3x = (0.5-a*cos(t)) * w c3y = (0.5-a*sin(t)) * h c4x = (0.5+a*sin(t)) * w c4y = (0.5-a*cos(t)) * h
- r2q(c, c,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y, rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = "line")
q2r( bg,leftx=t1x,rightx=t2x,ytop=t1y,ybot=t3y,ltopx=c1x,ltopy=c1y, rtopx=c2x,rtopy=c2y, rbotx=c3x,rboty=c3y,lbotx=c4x,lboty=c4y, resize = "point" )
Back to External Filters ←