1.0.1 • Published 5 years ago

@apiotrowski312/image-loader v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

@apiotrowski312/image-loader

Load an image (or batch of images) and put them in Canvas for you. Pretty useful for machine learning with NodeJS and TensorFlow. Should work fine with any node thanks to @babel/polyfil.

Installation

This is a Node.js module available through the npm registry. It can be installed using the npm or yarn command line tools.

npm install @apiotrowski312/image-loader --save

Usage

This module assumes that, you have all images in one directory. All of the images with the same naming convention (for creating labels).

Basic use

import LoadImages from '../src/index';

const imageLoader = new LoadImages('./images', { one: 'first', two: 'second'}, {silent: true, batchSize: 10});
const loadOneImage = imageLoader.loadLabelAndImage();
const loadBatchOfImages = imageLoader.loadBatchSizeImages();

Detailed options

new LoadImages(PATH, LABELS, OPTIONS);
  • PATH - path as a string
  • LABELS - Object, with key - value pairs. Each label should match your labelRegExp option.

For example, if you have a directory with images named like (and you didn't change labelRegExp):

one.1.jpg, one.2.jpg, two.jpg, two.xxx.qqq.png,

then your labels key should look simmilar to following example. Values can be different, following example would work well with TensorFlowJS.

const labels = {
  one: [1, 0],
  two: [0, 1],
}
  • OPTIONS
KEYDEFAULTDESCRIPTION
shuffletrueshuffle order of loading images if true
shufflePhrase'phrase'shuffle phrase for shuffle-seed
batchSize10how much images do you want load in one batch
trainSize100how much images do you want load to the script
labelRegExpRegExp(/[^.]*/)regexp for matching labels from img filenames
extentionsRegExpRegExp(/\.(jpg|png|jpeg)$/)regexp for matching images extentions (any other extention won't be loaded)
silentModetrueif true then there will be no console.logs(). Usesfull for debugging.

Tests

npm install
npm test

Dependencies

Dev Dependencies

To Do

  • add JSDoc (or simmilar)
  • remove trainSize option
  • change throwing Errors to something else (maybe return undefined?)

License

MIT