From 875937e3d88fd64eb434159a6ecfa156579775b4 Mon Sep 17 00:00:00 2001 From: Andrea Bianco Date: Sat, 17 Mar 2018 11:52:44 +0100 Subject: [PATCH] Expose libvips' median filter operation (#1161) --- lib/constructor.js | 1 + lib/operation.js | 21 +++++++ src/pipeline.cc | 8 ++- src/pipeline.h | 2 + test/fixtures/expected/median_1.jpg | Bin 0 -> 20344 bytes test/fixtures/expected/median_3.jpg | Bin 0 -> 833 bytes test/fixtures/expected/median_5.jpg | Bin 0 -> 640 bytes test/fixtures/expected/median_color.jpg | Bin 0 -> 12202 bytes test/fixtures/index.js | 2 + test/fixtures/random.jpg | Bin 0 -> 70082 bytes test/fixtures/thRandom.jpg | Bin 0 -> 26442 bytes test/unit/median.js | 72 ++++++++++++++++++++++++ 12 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 test/fixtures/expected/median_1.jpg create mode 100644 test/fixtures/expected/median_3.jpg create mode 100644 test/fixtures/expected/median_5.jpg create mode 100644 test/fixtures/expected/median_color.jpg create mode 100644 test/fixtures/random.jpg create mode 100644 test/fixtures/thRandom.jpg create mode 100644 test/unit/median.js diff --git a/lib/constructor.js b/lib/constructor.js index 1f1d39ec..d83b685f 100644 --- a/lib/constructor.js +++ b/lib/constructor.js @@ -153,6 +153,7 @@ const Sharp = function (input, options) { background: [0, 0, 0, 255], flatten: false, negate: false, + medianSize: 0, blurSigma: 0, sharpenSigma: 0, sharpenFlat: 1, diff --git a/lib/operation.js b/lib/operation.js index f08a2f3b..13e7a99d 100644 --- a/lib/operation.js +++ b/lib/operation.js @@ -156,6 +156,26 @@ function sharpen (sigma, flat, jagged) { return this; } +/** + * Apply median filter using vips_rank( in, out, m, m, m * m / 2 ); + * when used witout parameters the defaul window is 3x3 + * @param {Number} [size] square mask size: size x size + * @returns {Sharp} + * @throws {Error} Invalid parameters + */ +function median (size) { + if (!is.defined(size)) { + // No arguments: default to 3x3 + this.options.medianSize = 3; + } else if (is.integer(size) && is.inRange(size, 1, 1000)) { + // Numeric argument: specific sigma + this.options.medianSize = size; + } else { + throw new Error('Invalid median size ' + size); + } + return this; +} + /** * Blur the image. * When used without parameters, performs a fast, mild blur of the output image. @@ -444,6 +464,7 @@ module.exports = function (Sharp) { flip, flop, sharpen, + median, blur, extend, flatten, diff --git a/src/pipeline.cc b/src/pipeline.cc index 3a631836..a920c08f 100644 --- a/src/pipeline.cc +++ b/src/pipeline.cc @@ -359,6 +359,8 @@ class PipelineWorker : public Nan::AsyncWorker { bool const shouldBlur = baton->blurSigma != 0.0; bool const shouldConv = baton->convKernelWidth * baton->convKernelHeight > 0; bool const shouldSharpen = baton->sharpenSigma != 0.0; + bool const shouldApplyMedian = baton->medianSize > 0; + bool const shouldPremultiplyAlpha = HasAlpha(image) && (shouldResize || shouldBlur || shouldConv || shouldSharpen || shouldOverlayWithAlpha); @@ -544,7 +546,10 @@ class PipelineWorker : public Nan::AsyncWorker { image = image.embed(baton->extendLeft, baton->extendTop, baton->width, baton->height, VImage::option()->set("extend", VIPS_EXTEND_BACKGROUND)->set("background", background)); } - + // Median - must happen before blurring, due to the utility of blurring after thresholding + if (shouldApplyMedian) { + image = image.median(baton->medianSize); + } // Threshold - must happen before blurring, due to the utility of blurring after thresholding if (baton->threshold != 0) { image = sharp::Threshold(image, baton->threshold, baton->thresholdGrayscale); @@ -1194,6 +1199,7 @@ NAN_METHOD(pipeline) { baton->flatten = AttrTo(options, "flatten"); baton->negate = AttrTo(options, "negate"); baton->blurSigma = AttrTo(options, "blurSigma"); + baton->medianSize = AttrTo(options, "medianSize"); baton->sharpenSigma = AttrTo(options, "sharpenSigma"); baton->sharpenFlat = AttrTo(options, "sharpenFlat"); baton->sharpenJagged = AttrTo(options, "sharpenJagged"); diff --git a/src/pipeline.h b/src/pipeline.h index 386155e8..f8367270 100644 --- a/src/pipeline.h +++ b/src/pipeline.h @@ -73,6 +73,7 @@ struct PipelineBaton { bool flatten; bool negate; double blurSigma; + int medianSize; double sharpenSigma; double sharpenFlat; double sharpenJagged; @@ -157,6 +158,7 @@ struct PipelineBaton { flatten(false), negate(false), blurSigma(0.0), + medianSize(0), sharpenSigma(0.0), sharpenFlat(1.0), sharpenJagged(2.0), diff --git a/test/fixtures/expected/median_1.jpg b/test/fixtures/expected/median_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df153592726e7db68b7961f4b67d61c7bddb9f11 GIT binary patch literal 20344 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 S(c>iVau4zxcSi2~_u+qVGtdYC literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/median_3.jpg b/test/fixtures/expected/median_3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ccb091ab696fe068fc78769bc8fc24603b1e8071 GIT binary patch literal 833 zcmb7AYe*Df6g}U}?CdyhIomF~xmi2;sM*rk%4`jEw?rb)d?eV99vi(33br(&WbNAu zdMr^=Fhs$dg=fcEa0<`2=nd2K))aORO+YVKm_d zj^p^>RbrpJcqPXRTP%C)?#_rgI#R69`Oh@#O|$mDHPh@X*m%M=^L7OB!NkdltcCB( z8y`=2&y1Nk{(St$=$zGCA5QLU93N}hzqb2IyzoKqt{vG2+iDI!`|{&WjWocqeQhOx4+4Ux7}K&aiwjO`YZ=c@gp5o#FDHxUNnC5w#g0GM%-tC7zLhP^KoDM~%r zU~CmtmLR0pe*!aUuVKNyO3}?olR_zln1&Y2#$TgYXKxXRuRa6eo8A1%OL3B^$KI6iu45*+T zhS!&pgfo)2ulK8B8AT4^&_<~c7=j9%LIh5v)^ru~bE!~o6b!6tLf*&%R)yK7>v^?fskxSt?U&Xv^V}Vi?as0fK z(8YJf5G>#&z5464U=OEQPDGIdC7_AOT*g!89THcl0Y`KVz1x9&y`h#VO!LPfdB{X1 gdP+;6I90|mNWC=uN%+GEkpr*T(^CcxF%Ra;UxYi`Pyhe` literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/median_5.jpg b/test/fixtures/expected/median_5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ba536e98b0d88bd09d81d5c1dd6c52f8197f7615 GIT binary patch literal 640 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 truncated.jpg inputJpgCenteredImage: getPath('centered_image.jpeg'), + inputJpgRandom: getPath('random.jpg'), // convert -size 200x200 xc: +noise Random random.jpg + inputJpgThRandom: getPath('thRandom.jpg'), // convert random.jpg -channel G -threshold 5% -separate +channel -negate thRandom.jpg inputPng: getPath('50020484-00001.png'), // http://c.searspartsdirect.com/lis_png/PLDM/50020484-00001.png inputPngWithTransparency: getPath('blackbug.png'), // public domain diff --git a/test/fixtures/random.jpg b/test/fixtures/random.jpg new file mode 100644 index 0000000000000000000000000000000000000000..723c342e8aee1024788b706a64b56f329f2502c8 GIT binary patch literal 70082 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 R^i=bZRxHcE^Ti40|Jnc01la%p literal 0 HcmV?d00001 diff --git a/test/fixtures/thRandom.jpg b/test/fixtures/thRandom.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aa01d199eec0450c13b329bf3f1a02b45677a344 GIT binary patch literal 26442 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 literal 0 HcmV?d00001 diff --git a/test/unit/median.js b/test/unit/median.js new file mode 100644 index 00000000..a25ef1a1 --- /dev/null +++ b/test/unit/median.js @@ -0,0 +1,72 @@ +'use strict'; + +const assert = require('assert'); + +const sharp = require('../../'); +const fixtures = require('../fixtures'); + +describe('Median filter', function () { + it('1x1 window', function (done) { + sharp(fixtures.inputJpgThRandom) + .median(1) + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(200, info.width); + assert.strictEqual(200, info.height); + fixtures.assertSimilar(fixtures.expected('median_1.jpg'), data, done); + }); + }); + + it('3x3 window', function (done) { + sharp(fixtures.inputJpgThRandom) + .median(3) + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(200, info.width); + assert.strictEqual(200, info.height); + fixtures.assertSimilar(fixtures.expected('median_3.jpg'), data, done); + }); + }); + it('5x5 window', function (done) { + sharp(fixtures.inputJpgThRandom) + .median(5) + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(200, info.width); + assert.strictEqual(200, info.height); + fixtures.assertSimilar(fixtures.expected('median_5.jpg'), data, done); + }); + }); + + it('color image', function (done) { + sharp(fixtures.inputJpgRandom) + .median(5) + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(200, info.width); + assert.strictEqual(200, info.height); + fixtures.assertSimilar(fixtures.expected('median_color.jpg'), data, done); + }); + }); + + it('no windows size', function (done) { + sharp(fixtures.inputJpgThRandom) + .median() + .toBuffer(function (err, data, info) { + if (err) throw err; + assert.strictEqual('jpeg', info.format); + assert.strictEqual(200, info.width); + assert.strictEqual(200, info.height); + fixtures.assertSimilar(fixtures.expected('median_3.jpg'), data, done); + }); + }); + it('invalid radius', function () { + assert.throws(function () { + sharp(fixtures.inputJpg).median(0.1); + }); + }); +});