From 835df7bd1e81852062dd70ce1a054fc9b510e50f Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 25 Jul 2017 22:12:23 +0200 Subject: Fix blind-kernel and blind-temporal-mean,d add blind-{spatial,temporal}-arithm and blind-spatial-mean, and add support for multiple streams in blind-arithm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- man/blind-apply-kernel.1 | 1 + man/blind-arithm.1 | 16 +++++- man/blind-gauss-blur.1 | 1 + man/blind-kernel.1 | 116 ++++++++++++++++++++++++++++++++++++++++++++ man/blind-make-kernel.1 | 3 +- man/blind-spatial-arithm.1 | 35 +++++++++++++ man/blind-spatial-mean.1 | 48 ++++++++++++++++++ man/blind-temporal-arithm.1 | 39 +++++++++++++++ man/blind-temporal-mean.1 | 60 +++++++++++++++++++++++ man/blind.7 | 15 ++++++ 10 files changed, 332 insertions(+), 2 deletions(-) create mode 100644 man/blind-kernel.1 create mode 100644 man/blind-spatial-arithm.1 create mode 100644 man/blind-spatial-mean.1 create mode 100644 man/blind-temporal-arithm.1 create mode 100644 man/blind-temporal-mean.1 (limited to 'man') diff --git a/man/blind-apply-kernel.1 b/man/blind-apply-kernel.1 index f09cc6e..a4c28f1 100644 --- a/man/blind-apply-kernel.1 +++ b/man/blind-apply-kernel.1 @@ -63,6 +63,7 @@ A frame or row requires 32 bytes per pixel it contains. .SH SEE ALSO .BR blind (7), .BR blind-make-kernel (1), +.BR blind-kernel (1), .BR blind-gauss-blur (1) .SH AUTHORS Mattias Andrée diff --git a/man/blind-arithm.1 b/man/blind-arithm.1 index 6df053a..22d7fd7 100644 --- a/man/blind-arithm.1 +++ b/man/blind-arithm.1 @@ -5,7 +5,7 @@ blind-arithm - Perform simple arithmetic on a video .B blind-arithm [-axyz] .I operation -.I right-hand-stream +.IR right-hand-stream \ ... .SH DESCRIPTION .B blind-arithm reads left-hand operands from stdin, and right-hand @@ -27,6 +27,16 @@ If stdin is shorter than the remainder of .I right-hand-stream is ignored but may be partially read. +.P +IF multiple +.I right-hand-stream +are specified, they are applied from left to right, +with the exception for if +.I operation +is +.BR exp , +in which case they are applied from right to left with +stdin applied last. .SH OPERATIONS .TP .B add @@ -86,6 +96,10 @@ Do not modify the Z channel (the third channel). .BR blind-cross-product (1), .BR blind-quaternion-product (1), .BR blind-vector-projection (1), +.BR blind-spatial-mean (1), +.BR blind-spatial-arithm (1), +.BR blind-temporal-mean (1), +.BR blind-temporal-arithm (1), .BR blind-single-colour (1), .BR blind-set-alpha (1), .BR blind-set-luma (1), diff --git a/man/blind-gauss-blur.1 b/man/blind-gauss-blur.1 index e0e84a9..7b92045 100644 --- a/man/blind-gauss-blur.1 +++ b/man/blind-gauss-blur.1 @@ -81,6 +81,7 @@ memory. A frame requires 32 bytes per pixel it contains. .BR blind-single-colour (1), .BR blind-time-blur (1), .BR blind-make-kernel (1), +.BR blind-kernel (1), .BR blind-apply-kernel (1) .SH AUTHORS Mattias Andrée diff --git a/man/blind-kernel.1 b/man/blind-kernel.1 new file mode 100644 index 0000000..df789cc --- /dev/null +++ b/man/blind-kernel.1 @@ -0,0 +1,116 @@ +.TH BLIND-KERNEL 1 blind +.SH NAME +blind-kernel - Create a convolution matrix +.SH SYNOPSIS +.B blind-kernel +[-xyza] +.I kernel +.RI [ parameter ]\ ... +.SH DESCRIPTION +.B blind-kernel +creates a convolution matrix that can be applied to +a video using +.BR blind-apply-kernel (1). +The convolution matrix is created from a set +of standard formulae. The formula is selected +using the +.I kernel +argument and is tuned with +.IR kernel -specific +.IR parameter s. +.SH KERNELS +.TP +.BI kirsch\ direction +Create a Kirsch kernel with the specified +.IR direction . +The +.I direction +must be +.B 1 +or +.BR N ; +.BR 2 , +.BR NW , +or +.BR WN ; +.BR 3 +or +.BR W ; +.BR 4 , +.BR SW , +or +.BR WS ; +.BR 5 +or +.BR S ; +.BR 6 , +.BR SE , +or +.BR ES ; +.BR 7 +or +.BR E ; +or +.BR 8 , +.BR NE , +or +.BR EN . +.TP +.RI ' \fBbox\ blur\fP '\ [-w\ weight ]\ [ spread \ |\ x-spread \ y-spread ] +Creates a box blur kernel. Unless +.B -w +is used, the kernel is unweighted, otherwise it has the specified +.IR weight . +The kernel will have the spread 1, the specified +.IR spread , +or +.I x-spread +as the horizontal spread and +.I y-spread +as the vertical spread. +.TP +.BR sharpen \ [-i] +Creates a sharpen kernel. If +.B -i +is used, an intensified sharpen kernel is created. +.TP +.RI \fBgaussian\fP\ [-s\ spread ]\ [-u]\ standard-deviation +Creates a Gaussian blur kernel with the standard deviation +.IR standard-deviation . +If +.B -u +is used, the a Gaussian unsharpen kernel is created. If +.B -s +is specified, the specified +.I spread +will be used, otherwise the spread will be selected automatically. +.SH OPTIONS +.TP +.B -a +Apply the values to the alpha channel, set the +values for all unselected channels to zero. +.TP +.B -x +Apply the values to the X channel, set the values +for all unselected channels to zero. +.TP +.B -y +Apply the values to the Y channel, set the values +for all unselected channels to zero. +.TP +.B -z +Apply the values to the Z channel, set the values +for all unselected channels to zero. +.SH NOTES +.B blind-make-kernel +Create a single frame, to that it can be stored to +disc. When applying it to a video, you want to use +.BR blind-repeat (1). +.SH SEE ALSO +.BR blind (7), +.BR blind-apply-kernel (1), +.BR blind-kernel (1), +.BR blind-repeat (1) +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > diff --git a/man/blind-make-kernel.1 b/man/blind-make-kernel.1 index 903f489..69e3739 100644 --- a/man/blind-make-kernel.1 +++ b/man/blind-make-kernel.1 @@ -73,11 +73,12 @@ for all unselected channels to zero. .SH NOTES .B blind-make-kernel Create a single frame, to that it can be stored to -disk. When applying it to a video, you want to use +disc. When applying it to a video, you want to use .BR blind-repeat (1). .SH SEE ALSO .BR blind (7), .BR blind-apply-kernel (1), +.BR blind-kernel (1), .BR blind-repeat (1) .SH AUTHORS Mattias Andrée diff --git a/man/blind-spatial-arithm.1 b/man/blind-spatial-arithm.1 new file mode 100644 index 0000000..f512944 --- /dev/null +++ b/man/blind-spatial-arithm.1 @@ -0,0 +1,35 @@ +.TH BLIND-SPATIAL-ARITHM 1 blind +.SH NAME +blind-spatial-arithm - Perform simple arithmetic over all pixels for each frame in a video +.SH SYNOPSIS +.B blind-spatial-arithm +.I operation +.SH DESCRIPTION +.B blind-spatial-arithm +reads a video from stdin and applies an arithmetic +operation over all pixels, for each frame in the +video, and prints the resulting video, with one +pixel in each frame, to stdout. +.SH OPERATIONS +.TP +.B add +Calculate the sum of the operands. +.TP +.B mul +Calculate the product of the operands. +.TP +.B min +Select the lowest operand. +.TP +.B max +Select the highest operand. +.SH SEE ALSO +.BR blind (7), +.BR blind-temporal-arithm (1), +.BR blind-arithm (1), +.BR blind-spatial-mean (1), +.BR blind-temporal-mean (1), +.BR blind-rewrite-head (1) +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > diff --git a/man/blind-spatial-mean.1 b/man/blind-spatial-mean.1 new file mode 100644 index 0000000..74ffa53 --- /dev/null +++ b/man/blind-spatial-mean.1 @@ -0,0 +1,48 @@ +.TH BLIND-SPATIAL-MEAN 1 blind +.SH NAME +blind-spatial-mean - Calculate the mean over all pixel for each frame in a video +.SH SYNOPSIS +.B blind-spatial-mean +[-g | -h | -l +.I power +| -p +.I power +| -v] +.SH DESCRIPTION +.B blind-spatial-mean +reads a video from stdin and calculates the mean +over all pixels for frames, and outputs a +video with one pixel in each frame, to stdout with +the mean for each frame. +.P +Unless otherwise specified, the arithmetic mean +is calculated. +.SH OPTIONS +.TP +.B -g +Calculate the geometric mean. +.TP +.B -h +Calculate the harmonic mean. +.TP +.BR -l \ \fIpower\fP +Calculate the Lehmer mean with the specified +.IR power . +.TP +.BR -p \ \fIpower\fP +Calculate the power mean (Hölder mean) with +the specified +.IR power . +.TP +.B -v +Calculate the variance. +.SH SEE ALSO +.BR blind (7), +.BR blind-temporal-arithm (1), +.BR blind-spatial-arithm (1), +.BR blind-arithm (1), +.BR blind-temporal-mean (1), +.BR blind-rewrite-head (1) +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > diff --git a/man/blind-temporal-arithm.1 b/man/blind-temporal-arithm.1 new file mode 100644 index 0000000..1ccfc2a --- /dev/null +++ b/man/blind-temporal-arithm.1 @@ -0,0 +1,39 @@ +.TH BLIND-TEMPORAL-ARITHM 1 blind +.SH NAME +blind-temporal-arithm - Perform simple arithmetic over all frames in a video for each pixel +.SH SYNOPSIS +.B blind-temporal-arithm +.I operation +.SH DESCRIPTION +.B blind-temporal-arithm +reads a video from stdin and applies an arithmetic +operation over all frames in the video, for each +pixel, and prints the resulting single-frame video +to stdout. +.SH OPERATIONS +.TP +.B add +Calculate the sum of the operands. +.TP +.B mul +Calculate the product of the operands. +.TP +.B min +Select the lowest operand. +.TP +.B max +Select the highest operand. +.SH REQUIREMENTS +.B blind-temporal-arithm +requires enough free memory to load one full frames memory. +A frame requires 32 bytes per pixel it contains. +.SH SEE ALSO +.BR blind (7), +.BR blind-temporal-mean (1), +.BR blind-spatial-arithm (1), +.BR blind-spatial-mean (1), +.BR blind-arithm (1), +.BR blind-rewrite-head (1) +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > diff --git a/man/blind-temporal-mean.1 b/man/blind-temporal-mean.1 new file mode 100644 index 0000000..88e0d0c --- /dev/null +++ b/man/blind-temporal-mean.1 @@ -0,0 +1,60 @@ +.TH BLIND-TEMPORAL-MEAN 1 blind +.SH NAME +blind-temporal-mean - Calculate the mean over all frames in a video for each pixel +.SH SYNOPSIS +.B blind-temporal-mean +[-g | -h | -l +.I power +| -p +.I power +| -v] +.SH DESCRIPTION +.B blind-temporal-mean +reads a video from stdin and calculates the mean +over all frames for each pixel, and outputs a +single frame video to stdout with the mean for +each pixel. +.P +Unless otherwise specified, the arithmetic mean +is calculated. +.SH OPTIONS +.TP +.B -g +Calculate the geometric mean. +.TP +.B -h +Calculate the harmonic mean. +.TP +.BR -l \ \fIpower\fP +Calculate the Lehmer mean with the specified +.IR power . +.TP +.BR -p \ \fIpower\fP +Calculate the power mean (Hölder mean) with +the specified +.IR power . +.TP +.B -v +Calculate the variance. +.SH REQUIREMENTS +.B blind-temporal-mean +requires enough free memory to load two full frames memory. +A frame requires 32 bytes per pixel it contains. If +.B -l +or +.B -v +is used, enough free memory to load three full frames +memory is required. +.P +.B blind-temporal-mean +is optimised for simplicity rather than memory usage. +.SH SEE ALSO +.BR blind (7), +.BR blind-temporal-arithm (1), +.BR blind-spatial-arithm (1), +.BR blind-arithm (1), +.BR blind-spatial-mean (1), +.BR blind-rewrite-head (1) +.SH AUTHORS +Mattias Andrée +.RI < maandree@kth.se > diff --git a/man/blind.7 b/man/blind.7 index acc4bb5..2e32b5e 100644 --- a/man/blind.7 +++ b/man/blind.7 @@ -144,6 +144,9 @@ Invert the luminosity of a video .BR blind-invert-matrix (1) Invert matrix-video .TP +.BR blind-kernel (1) +Create a convolution matrix +.TP .BR blind-linear-gradient (1) Generate a video with a linear gradient .TP @@ -255,6 +258,12 @@ Apply sine-wave repetition to gradient .BR blind-skip-pattern (1) Skips frames in a video according to pattern .TP +.BR blind-spatial-arithm (1) +Perform simple arithmetic over all pixels for each frame in a video +.TP +.BR blind-spatial-mean (1) +Calculate the mean over all pixel for each frame in a video +.TP .BR blind-spectrum (1) Transform a gradient into a spectrum .TP @@ -284,6 +293,12 @@ Overlay videos .BR tee (1) implementation .TP +.BR blind-temporal-arithm (1) +Perform simple arithmetic over all frames in a video for each pixel +.TP +.BR blind-temporal-mean (1) +Calculate the mean over all frames in a video for each pixel +.TP .BR blind-time-blur (1) Draw new frames on top of old frames with partial alpha .TP -- cgit v1.2.3-70-g09d2