function doColorize(img, options, cb) { options = options || {} var gray = !!(options.grayscale || options.greyscale || options.luminance || options.gray || options.grey || options.colormap === "gray") if(img.dimension === 3) { if(gray) { //Convert to grayscale var gbuf = pool.mallocFloat32(img.size) var gimg = ndarray(gbuf, [img.shape[0], img.shape[1]]) luminance(gimg, img) if(("min" in options) || ("max" in options)) { var lo = ("min" in options) ? +options.min : ops.infimum(gimg) ops.subseq(gimg, lo) var hi = ("max" in options) ? +options.max : ops.supremum(gimg) ops.mulseq(gimg, 255.0 / (hi - lo)) } cb(gimg) pool.freeFloat32(gbuf) } else { if(("min" in options) || ("max" in options)) { var gbuf = pool.mallocFloat32(img.size) var gimg = ndarray(gbuf, img.shape) var lo = ("min" in options) ? +options.min : ops.infimum(img) ops.subeq(gimg, img, lo) var hi = ("max" in options) ? +options.max : ops.supremum(img) ops.mulseq(gimg, 255.0 / (hi - lo)) cb(gimg) pool.freeFloat32(gbuf) } else { cb(img) } } } else if(img.dimension === 2) { var buf = pool.mallocUint8(img.size * 3) var opts = { "outBuffer": buf } if("min" in options) { opts.min = +options.min } if("max" in options) { opts.max = +options.max } if("colormap" in options) { opts.colormap = options.colormap } if(gray) { opts.colormap = "gray" } var result = colorize(img, opts) cb(result) pool.freeUint8(buf) } else { throw new Error("invalid image dimensions") } }
var ndarray = require("ndarray") var ndscratch = require("ndarray-scratch") var ops = require("ndarray-ops") var lena = require("baboon-image") var luminance = require("luminance") var gaussFilter = require("ndarray-gaussian-filter") var pool = require("typedarray-pool") var colorize = require("apply-colormap") var grayLena = luminance(lena) var imageProcessingCanvas = document.getElementById("image-processing-canvas") var imageProcessingContext = imageProcessingCanvas.getContext("2d") var imageProcessingSigma = document.getElementById("image-processing-sigma") var imageProcessingPixels = imageProcessingContext.createImageData(512, 512) var imageProcessingNdarray = ndarray(imageProcessingPixels.data, [512, 512, 4], [512*4, 4, 1], 0) ops.assigns(imageProcessingNdarray, 255) function repaintImageProcessing() { var sigma = +imageProcessingSigma.value var filtered = ndscratch.malloc(grayLena.shape) var pixels = pool.mallocUint8(grayLena.size * 3) ops.assign(filtered, grayLena) gaussFilter(filtered, sigma) var colors = colorize(filtered, { colormap: "gray", outBuffer: pixels }) ndscratch.free(filtered) ops.assign(imageProcessingNdarray.hi(-1,-1,3), colors) pool.freeUint8(pixels)
'use strict'; var _ = require('underscore'), Promise = require('promise'), grayscale = require('luminance'), fs = require('fs'), la = require('sylvester'), lena = grayscale(require('lena')), Matrix = la.Matrix, Vector = la.Vector; var samples = require('../src/utils/samples.js'), homography = require('../src/webmvs/homography.js'), rectification = require('../src/webmvs/rectification.js'), bundler = require('../src/math/bundler.js'), projections = require('../src/math/projections.js'), testUtils = require('../src/utils/testing.js'), rotate = require('../src/math/rotate.js'); function testPair(index1, index2){ var data = samples.getTwoView(index1, index2), cam1 = data.cam1, cam2 = data.cam2, R1 = data.R1, t1 = data.t1, f1 = data.f1, R2 = data.R2, t2 = data.t2, f2 = data.f2, rotations = rectification(R1, R2, t1, t2, f1, f2), RR1 = rotations[0], RR2 = rotations[1]; // var R1new = RR1.x(R1), t1new = RR1.x(t1), // R2new = RR2.x(R2), t2new = RR2.x(t2);
'use strict' var imshow = require('ndarray-imshow') var baboon = require('baboon-image') var luminance = require('luminance') var applyHomography = require('../xform') var scratch = require('ndarray-scratch') var baboonGrey = luminance( scratch.zeros([baboon.shape[0], baboon.shape[1]]), baboon) imshow(applyHomography( scratch.zeros(baboonGrey.shape), baboonGrey, [1, 0, 0, 0, 1, 0, 1, 100, 1] ))