inspirit / jsfeat

JavaScript Computer Vision library.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Need an example how to use resample with RGB images

vfateev opened this issue · comments

The description says the method works with single and multi channel.
So what I'm trying to do is smth like this:
// Prepare input data
var columns = imageData.width;
var rows = imageData.height;
var data_type = jsfeat.U8_t | jsfeat.C3_t; // RGB = 3 channels
var src = new jsfeat.matrix_t(columns, rows, data_type);

    var size = imageData.data.length;
    for (var i = 0, j = 0 ; i < size ; i +=4, j +=3) {
        src.data[j]     = imageData.data[i];
        src.data[j + 1] = imageData.data[i + 1];
        src.data[j + 2] = imageData.data[i + 2];
    }

    // Prepare output data
    var scale = 0.5;
    var nw = Math.floor(width * scale);
    var nh = Math.floor(height * scale);
    var dst = new jsfeat.matrix_t(nw, nh, data_type);

    // Resample
    jsfeat.imgproc.resample(src, dst, nw, nh);

    // Prepare output imageData
    var dstImageData = createEmptyImageData(nw, nh);
    size = dstImageData.data.length;

    for (i = 0, j = 0 ; i < size ; i += 4, j += 3) {
        dstImageData.data[i] = dst.data[j];
        dstImageData.data[i + 1] = dst.data[j + 1];
        dstImageData.data[i + 2] = dst.data[j + 2];
        dstImageData.data[i + 3] = 255;
    }
    
    // Draw dstImageData into the canvas and check

The result I got is pretty weird: https://www.dropbox.com/s/xfjucm99kjd6wpx/resample_result.jpg?dl=0
Can't figure out what is wrong, could you please help?