Metadata-Version: 2.1
Name: speckle_pattern
Version: 1.3.2
Summary: Generate print-ready pattern images for DIC applications.
Project-URL: Homepage, https://github.com/ladisk/speckle_pattern
Project-URL: Bug Tracker, https://github.com/ladisk/speckle_pattern/issues
Author-email: "Domen Gorjup, Janko Slavič, Miha Boltežar" <janko.slavic@fs.uni-lj.si>
License-File: LICENSE
Keywords: computer vision,dic,speckle pattern
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.10
Requires-Dist: imageio>=2.2.0
Requires-Dist: matplotlib>=2.0.0
Requires-Dist: numpy>=1.0.0
Requires-Dist: piexif>=1.0.13
Requires-Dist: scipy>=1.0.0
Requires-Dist: tqdm>=4.10.0
Description-Content-Type: text/markdown

Generate print-ready images of a random speckle pattern for DIC applications.

#### Installation

This package is hosted on PyPI. Install it using `pip`:

```pip install speckle_pattern```


#### Example speckle pattern

```python
from speckle_pattern import generate_and_save

image_height = 50 # mm
image_width = 100 # mm
speckle_diameter = 3 # mm
dpi = 200
save_path = 'example.jpg'

generate_and_save(image_height, image_width, dpi, speckle_diameter, save_path)
```

<p align='center'><img src='example.jpg' width=400 alt='random speckle'/></p>


#### More speckle generation options

```python
from speckle_pattern import generate_and_save

image_height = 50 # mm
image_width = 100 # mm
speckle_diameter = 7.5 # mm
dpi = 150
save_path = 'example2.tiff'

size_randomness = 0.9 # set higher for more speckle size variety
position_randomness = 2.5 # set higher for more speckle position variety
speckle_blur = 0. # sigma of smothing Gaussian kernel
grid_step = 2. # approximate grid step, in terms of speckle diameter `D`

generate_and_save(
    image_height, 
    image_width, 
    dpi, 
    speckle_diameter, 
    save_path,
    size_randomness=size_randomness,
    position_randomness=position_randomness,
    speckle_blur=speckle_blur,
    grid_step=grid_step,
    )
```

<p align='center'><img src='example2.jpg' width=400 alt='random speckle 2'/></p>

#### Example line pattern

```python
from speckle_pattern import generate_lines

image_height = 50 # mm
image_width = 100 # mm
line_width = 5 # mm
orientation = 'vertical'
dpi = 200
save_path = f'example_lines_{orientation}.jpg'

generate_lines(image_height, image_width, dpi, line_width, save_path)
```

<p align='center'><img src='example_lines_vertical.jpg' width=400 alt='vertical lines'/></p>

#### Example checkerboard pattern

```python
from speckle_pattern import generate_checkerboard

image_height = 50 # mm
image_width = 100 # mm
line_width = 4 # mm
dpi = 200
save_path = f'example_checkerboard.jpg'

generate_checkerboard(image_height, image_width, dpi, line_width=line_width, path=save_path)
```

<p align='center'><img src='example_checkerboard.jpg' width=400 alt='checkerboard'/></p>

### Authors

- [Domen Gorjup](http://ladisk.si/?what=incfl&flnm=gorjup.php)
- [Janko Slavič](http://ladisk.si/?what=incfl&flnm=slavic.php)
- [Miha Boltežar](http://ladisk.si/?what=incfl&flnm=boltezar.php)