All Projects → esimov → Gobrot

esimov / Gobrot

Licence: mit
Mandelbrot image renderer in Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gobrot

Bitmap
C++ Bitmap Library
Stars: ✭ 125 (+78.57%)
Mutual labels:  fractal, image-processing
Multiclass Semantic Segmentation Camvid
Tensorflow 2 implementation of complete pipeline for multiclass image semantic segmentation using UNet, SegNet and FCN32 architectures on Cambridge-driving Labeled Video Database (CamVid) dataset.
Stars: ✭ 67 (-4.29%)
Mutual labels:  image-processing
Halide Hls
HLS branch of Halide
Stars: ✭ 59 (-15.71%)
Mutual labels:  image-processing
Retouch
🎬 An OpenGL application for editing and retouching images using depth-maps in 2.5D
Stars: ✭ 63 (-10%)
Mutual labels:  image-processing
Imagesoup
Python library designed for quick search and downloading images from Google Images.
Stars: ✭ 60 (-14.29%)
Mutual labels:  image-processing
Artos
Adaptive Real-Time Object Detection System with HOG and CNN Features
Stars: ✭ 64 (-8.57%)
Mutual labels:  image-processing
Pywt
PyWavelets - Wavelet Transforms in Python
Stars: ✭ 1,098 (+1468.57%)
Mutual labels:  image-processing
Blendit
🖼 Blend images with text and generate amazing looking posters.
Stars: ✭ 68 (-2.86%)
Mutual labels:  image-processing
Pillow
The friendly PIL fork (Python Imaging Library)
Stars: ✭ 9,241 (+13101.43%)
Mutual labels:  image-processing
Jpg Glitch
glitch images with jpg encoding
Stars: ✭ 1,120 (+1500%)
Mutual labels:  image-processing
Fractalart
Generate colorful wallpapers!
Stars: ✭ 61 (-12.86%)
Mutual labels:  fractal
Colorfilters
Image thresholding in multiple colorspaces.
Stars: ✭ 60 (-14.29%)
Mutual labels:  image-processing
Fft Conv Pytorch
Implementation of 1D, 2D, and 3D FFT convolutions in PyTorch. Much faster than direct convolutions for large kernel sizes.
Stars: ✭ 65 (-7.14%)
Mutual labels:  image-processing
Catt
Detecting the temperature from an infrared image
Stars: ✭ 60 (-14.29%)
Mutual labels:  image-processing
Opendcx
OpenDCX Repository
Stars: ✭ 67 (-4.29%)
Mutual labels:  image-processing
Angular Filepond
🔌 A handy FilePond adapter component for Angular
Stars: ✭ 59 (-15.71%)
Mutual labels:  image-processing
Popbot
Color splash effects using Deep Learning
Stars: ✭ 61 (-12.86%)
Mutual labels:  image-processing
Legoizer
A tool to convert images to Lego bricks.
Stars: ✭ 63 (-10%)
Mutual labels:  image-processing
Image Filtering
A Swift playgroundbook about Image Filtering
Stars: ✭ 70 (+0%)
Mutual labels:  image-processing
Scanbot Sdk Example Android
Document scanning SDK example apps for the Scanbot SDK for Android.
Stars: ✭ 67 (-4.29%)
Mutual labels:  image-processing

gobrot

Gobrot is a mandelbrot image renderer written in Go. The renderer takes advantage of Go's concurrent and parallel programming feature known as goroutine.

Mandelbrot images are generated by applying a mathematical function to each complex number projected in the complex plane and determining for each whether they are bounded or escapes towards infinity. The mandelbrot set is defined by the following formula: z_{n+1} = z_n^2 + c.

Treating the real and imaginary parts of each number as image coordinates, pixels are colored according to how rapidly the sequence diverges, if at all.

Install

$ go get github.com/esimov/gobrot
$ go install

Before to run the code you need to include the project into the GOPATH environment variable.

$ export GOPATH="$HOME/go"
$ export PATH="$PATH:$GOPATH/bin"

See the documentation: https://golang.org/doc/code.html#GOPATH

Run

Running $ gobrot will produce the following image:

sample

$ gobrot --help

Usage of gobrot:
  -file string
    	The rendered mandelbrot image filname (default "mandelbrot.png")
  -height int
    	Rendered image height (default 768)
  -iteration int
    	Iteration count (default 800)
  -palette string
    	Hippi | Plan9 | AfternoonBlue | SummerBeach | Biochimist | Fiesta (default "Hippi")
  -radius float
    	Escape Radius (default 0.125689)
  -smoothness int
    	The rendered mandelbrot set smoothness. For a more detailded and clear image use higher numbers. For 4xAA (AA = antialiasing) use -smoothness 4 (default 8)
  -step float
    	Color smooth step. Value should be greater than iteration count, otherwise the value will be adjusted to the iteration count. (default 6000)
  -width int
    	Rendered image width (default 1024)
  -xpos x
    	Point position on the real axis (defined on x axis) (default -0.00275)
  -ypos y
    	Point position on the imaginary axis (defined on y axis) (default 0.78912)

Here are some options you can try out. (The attached images are generated using the below commands.)

$ gobrot -palette "Hippi" -xpos -0.0091275 -ypos 0.7899912 -radius .01401245 -file "mandelbrot.png"
$ gobrot -palette "Plan9" -xpos -0.0091275 -ypos 0.7899912 -radius .01401245 -file "test2.png" -iteration 600 -step 600
$ gobrot -palette "Vivid" -xpos -0.00991275 -ypos 0.7899912 -radius .02401245 -file "test3.png" -iteration 800 -step 600 -smoothness 10 -width 1920 -height 1080
$ gobrot -palette "Hippi" -xpos -0.00275 -ypos 1.012 -radius .089999 -file "test4.png" -iteration 800 -step 600 -smoothness 10 -width 1920 -height 1080
$ gobrot -palette "Hippi" -xpos -0.00275 -ypos 0.78912 -radius .1256789 -file "test5.png" -iteration 800 -step 6000 -smoothness 10 -width 1920 -height 1080

By combining -palette, -iteration and -step values you can obtain differently colorized mandelbrot sets.

Check out my article for more details: http://esimov.com/2016/04/mandelbrot-renderer-in-go

TODO

  • [ ] Generate various images with a single command
  • [ ] Find dynamically the regions where a deep zoom will emerge new mandelbrot sets

Resources

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].