All Projects → image-js → Image Js

image-js / Image Js

Licence: mit
Image processing and manipulation in JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Image Js

Image Similarity
计算图片之间的相似度
Stars: ✭ 292 (+21.16%)
Mutual labels:  image-processing, image, image-analysis
Menyoki
Screen{shot,cast} and perform ImageOps on the command line 🌱 🏞️
Stars: ✭ 255 (+5.81%)
Mutual labels:  image-processing, image, image-analysis
Lerc
Limited Error Raster Compression
Stars: ✭ 126 (-47.72%)
Mutual labels:  image-processing, image
Imageprocessing
MicaSense RedEdge and Altum image processing tutorials
Stars: ✭ 139 (-42.32%)
Mutual labels:  image-processing, image-analysis
Hltool
Go 开发常用工具库, Google2步验证客户端,AES加密解密,RSA加密解密,钉钉机器人,邮件发送,JWT生成解析,Log,BoltDB操作,图片操作,json操作,struct序列化
Stars: ✭ 151 (-37.34%)
Mutual labels:  image-processing, image
Aesthetics
Image Aesthetics Toolkit - includes Fisher Vector implementation, AVA (Image Aesthetic Visual Analysis) dataset and fast multi-threaded downloader
Stars: ✭ 113 (-53.11%)
Mutual labels:  image-processing, image
Gil
Boost.GIL - Generic Image Library | Requires C++11 since Boost 1.68
Stars: ✭ 122 (-49.38%)
Mutual labels:  image-processing, image
Isketchnfill
Software that can autocomplete sketches as the user starts drawing.
Stars: ✭ 151 (-37.34%)
Mutual labels:  image-processing, image
Serverless Image Processor
AWS Lambda image processor
Stars: ✭ 106 (-56.02%)
Mutual labels:  image-processing, image
Stackblur Go
A fast, almost Gaussian Blur implementation in Go
Stars: ✭ 189 (-21.58%)
Mutual labels:  image-processing, image
Imantics
📷 Reactive python package for managing, creating and visualizing different deep-learning image annotation formats
Stars: ✭ 184 (-23.65%)
Mutual labels:  image-processing, image
Resdet
Detect source resolution of upscaled images
Stars: ✭ 191 (-20.75%)
Mutual labels:  image-processing, image-analysis
Mindboggle
Automated anatomical brain label/shape analysis software (+ website)
Stars: ✭ 112 (-53.53%)
Mutual labels:  image-processing, image-analysis
Sod
An Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable)
Stars: ✭ 1,460 (+505.81%)
Mutual labels:  image-processing, image-analysis
Bitmap
C++ Bitmap Library
Stars: ✭ 125 (-48.13%)
Mutual labels:  image-processing, image
Gift
Go Image Filtering Toolkit
Stars: ✭ 1,473 (+511.2%)
Mutual labels:  image-processing, image
Github link creator
GitHub Link Card Creator lets you generate GitHub images has links to repositories.
Stars: ✭ 149 (-38.17%)
Mutual labels:  image-processing, image
Igrphototweaks
Drag, Rotate, Scale and Crop
Stars: ✭ 212 (-12.03%)
Mutual labels:  image-processing, image
Pimg
📷 Mini Image Lazy Loader for P(R)eact and Vue
Stars: ✭ 97 (-59.75%)
Mutual labels:  image-processing, image
Blind image quality toolbox
Collection of Blind Image Quality Metrics in Matlab
Stars: ✭ 105 (-56.43%)
Mutual labels:  image-processing, image-analysis

image-js

NPM version build status Test coverage npm download

Advanced image processing and manipulation in JavaScript.

image-js is a full-featured library that can deal with simple image processing (color leveling, grey image, mask, resize, rotation, etc.) as well as advanced processing on scientific images (Region of interest (ROI), Hull curve, minimal boundary rectangle (MBR), particle size and orientation, cell imaging, etc.).

API Documentation

Installation

$ npm install image-js

Features

Supported image formats

The following formats can be loaded by image-js:

  • PNG (8 or 16 bits, color or greyscale, with or without alpha, palette 1 - 8 bits)
  • JPEG
  • TIFF (8 or 16 bits, color or greyscale, supports LZW compression)

The following formats can be saved by image-js:

  • PNG (8 or 16 bits)
  • JPEG
  • BMP (black and white)

Native support for various bit depths and image kinds

image-js was developed to be used in scientific applications where we often have to work on images that have more that 8 bits per channel.
Unlike many other libraries, if a 16-bit greyscale PNG is decoded, the resulting image has only one 16-bit channel and no pixel information is lost.

image-js can work with images that have 1 (binary), 8, 16 or 32 bits per channel.
It can accept an arbitrary amount of color channels (usually 1 or 3) and can handle an additional alpha component.

Basic image manipulation

image-js can be used to do simple image manipulations such as:

  • Resize
  • Crop
  • Rotate
  • Convert to greyscale
  • Invert colors
  • Gaussian blur
  • Extract individual channels (red, green or blue)
  • And more...

Statistics

image-js implements a number of functions to get statistics about an image:

  • Histogram
  • Max, min, median value
  • And more ...

Advanced features for computer vision

  • Image thresholding (otsu, triangle, ...)
  • Regions of interest
  • Convolution with custom kernel
  • Sobel filter
  • Morphological transformations (open, close, erode, ...)

An example using npm and node

Install the library:

npm i image-js

An example of code manipulating the image 'cat.jpg' (you need to create it).

const { Image } = require('image-js');

execute().catch(console.error);

async function execute() {
  let image = await Image.load('cat.jpg');
  let grey = image
    .grey() // convert the image to greyscale.
    .resize({ width: 200 }) // resize the image, forcing a width of 200 pixels. The height is computed automatically to preserve the aspect ratio.
    .rotate(30); // rotate the image clockwise by 30 degrees.
  return grey.save('cat.png');
}
node index.js

A greyscale image will be saved in the same folder.

Examples in the browser

Load an image and convert it to grey

<html>
  <head>
    <script src="https://www.lactame.com/lib/image-js/0.21.2/image.min.js"></script>
  </head>

  <body>
    <img
      id="color"
      src="https://www.lactame.com/github/image-js/image-js/3073b80c7d626196cb669f9d617f491a8338ca66/test/img/taxi/original.jpeg"
    />
    <img id="result" />

    <script>
      async function process() {
        let image = await IJS.Image.load(document.getElementById('color').src);

        let grey = image.grey();

        document.getElementById('result').src = grey.toDataURL();
      }
      process();
    </script>
  </body>
</html>

Try it

Create a mask

Try it

Paint a mask

Try it

Filter a mask using Region Of Interests (ROIs)

Image-js has a powerful Region of Interests Manager that allows to create ROIs from different sources. The ROIs can then be filtered, manipulated and finally painted to an RGBA image.

Try it

When extracting a mask from a ROI you have many options (contour, box, filled, center, hull or normal). Here it looks better to use the filled ROI.

Try it

Advanced analysis of SEM / TEM images

This library is able to deal with complex analysis involving images of cell or SEM / TEM. It will deal correctly with 16 bits grey scale images (TIFF or PNG) commonly found in scientific results.

In this example we will annotate an SEM / TEM image by coloring each particle and show the surface of them.

We also display a table containing a summary of all the identified particles.

Try it

Development

Contributions to code or documentation are welcome! Here are a few tips on how to setup a development environment for image-js.

Canvas

The canvas native addon library is required for all tests to pass. You can follow the instructions to install it on your OS here.

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].