Code Monkey home page Code Monkey logo

lab's Introduction

Lab

This is a place where I've been experimenting with image processing and audio processing.

Build

Requirements :

Visual Studio (Tested only on Visual Studio 2019)

Commands :

### Clone the repo and checkout to the latest branch
git clone --recursive https://github.com/jacquespillet/Lab.git
cd Lab

### Generate the solution
mkdir build
cd build
cmake ../

### Build
cd ..
BuildDebug.bat / BuildRelease.bat

First build may take a while because it's going to build all the dependencies with the project.

Image Lab

Banner

In this part, I've been basically trying to implement different image processing algorithms, mostly on the gpu as compute shaders, and sometimes on cpu as the algorithm doesn't really fit the massively parallel nature of gpu computing.

It's basically set up as a processing stack. We add processes on top of another.

So to apply processing to an image, we first have to add a "Add Image" process for example, and then all the subsequent added process will apply to the previous one.

Have a look at the gallery to see some of the output images of each process.

Here's a list of all the processes implemented :

  • Color Contrast Stretch

  • Gray Scale Contrast Stretch

  • Negative

  • Local Threshold

  • Threshold

  • Quantization

  • Transform

  • Resampling

  • Add Noise

  • Smoothing Filter

  • Sharpen Filter

  • Sobel Filter

  • Median Filter

  • Min/Max Filter

  • Gaussian Blur

  • Half Toning

  • Dithering

  • Erosion

  • Add Gradient

  • Dilation

  • Add Image

  • Multiply Image

  • Gaussian Pyramid

  • Laplacian Pyramid

  • Pen Draw

  • Hard Composite

  • Seam Carving Resize

  • Patch Inpainting

  • Multi-Resolution Composite

  • Curve Grading

  • Add Color

  • Laplacian Of Gaussian

  • Difference Of Gaussians

  • Canny Edge Detector

  • Arbitrary Filter

  • Gamma Correction

  • Color Distance

  • Edge Linking

  • Region Grow

  • Region Properties

  • Error Diffusion Halftoning

  • K-Means Cluster

  • Super Pixels Cluster

  • Hough Transform

  • Polygon Fitting

  • Otsu Threshold

  • Gradient

  • Equalize

  • FFT Blur

Audio Lab

The Audio Lab is a smalll synthetizer that allows to author different instruments and to create tracks.

It's very limited in features, and I would love to improve it when I have some more time.

Here's the interface : Interface

We can have multiple clips, each clip uses an instrument.

There are multiple settings for defining an instrument :

Enveloppe :

This defines how the key behaves throughout its lifetime. How loud it starts, wether it fades in at the start, fades out at the end, and other options...

Enveloppe

Wave :

This allows to define the shape of the sound wave. It can be an accumulation of multiple frequency functions (Sine, Cosine, Saw Tooth, Triangle, Square, Noise, Impulse, Sawn)

Wave

There's also a possibility to add a high-pass filter, and to do frequency decay to create drums.

lab's People

Contributors

jacquespillet avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.