aboutsummaryrefslogtreecommitdiffstats
path: root/src/blind-kernel.c
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2017-07-26 19:25:28 +0200
committerMattias Andrée <maandree@kth.se>2017-07-26 19:25:28 +0200
commit5ba5815d0a7255f311cdc66251774e6e36854e8f (patch)
tree7c05d21052cdbf29eab2b246abf7a8d0c128eabf /src/blind-kernel.c
parentblind{-make,}-kernel: apply identity kernel instead of null kernel to non-selected channels (diff)
downloadblind-5ba5815d0a7255f311cdc66251774e6e36854e8f.tar.gz
blind-5ba5815d0a7255f311cdc66251774e6e36854e8f.tar.bz2
blind-5ba5815d0a7255f311cdc66251774e6e36854e8f.tar.xz
Add glow effects
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to '')
-rw-r--r--src/blind-kernel.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/blind-kernel.c b/src/blind-kernel.c
index 8d0382e..352cede 100644
--- a/src/blind-kernel.c
+++ b/src/blind-kernel.c
@@ -223,13 +223,16 @@ kernel_gaussian(int argc, char *argv[], size_t *rows, size_t *cols, double **fre
{
size_t spread = 0, y, x;
ssize_t xx, yy;
- int unsharpen = 0;
+ int unsharpen = 0, glow = 0;
double sigma, value, c, k;
char *arg;
#define argv0 arg
argc++, argv--;
ARGBEGIN {
+ case 'g':
+ glow = 1;
+ break;
case 's':
if (!(arg = ARGF()))
goto usage;
@@ -243,7 +246,7 @@ kernel_gaussian(int argc, char *argv[], size_t *rows, size_t *cols, double **fre
} ARGEND;
#undef argv0
- if (argc != 1)
+ if (argc != 1 || (unsharpen && glow))
goto usage;
sigma = etolf_arg("standard-deviation", argv[0]);
@@ -270,11 +273,13 @@ kernel_gaussian(int argc, char *argv[], size_t *rows, size_t *cols, double **fre
if (unsharpen)
(*free_this)[spread * *cols + spread] -= 2.0;
+ if (glow)
+ (*free_this)[spread * *cols + spread] += 1;
return *free_this;
usage:
- eprintf(SUBUSAGE("'gaussian' [-s spread] [-u] standard-deviation"));
+ eprintf(SUBUSAGE("'gaussian' [-s spread] [-g | -u] standard-deviation"));
return NULL;
}