Major Changes 🔥
* :factory: **Introducing `CloudGenerator()`** which encapsulates a specific configuration, and generation probabilities (`cloud_p` and `shadow_p`). It is compatible as PyTorch module (you can plug it into augmentation pipelines, like `torchvision` or `albumentations`)
python
my_gen=CloudGenerator(WIDE_CONFIG,cloud_p=1.0,shadow_p=0.5)
my_gen(my_image) will act just like add_cloud_and_shadow() but will preserve the same configuration!
---
* :rainbow: **Channel-Specific Cloud Magnitude** allows for channels to have slightly different cloud strengths (since this strength is generally dependent on carrier wavelength) by setting channel_magnitude_shift` to a non-zero value:
![ch](https://user-images.githubusercontent.com/13435425/207385813-1e4f8065-2cb8-4af4-b6ea-eb82aacdca78.png)
---
* :mask: **Segmentation Mask Functionality** allows you to call the `segmentation_mask(cloud_mask,shadow_mask)` method, which will return a segmentation mask for your generated clouds and shadows!
![simple_seg](https://user-images.githubusercontent.com/13435425/207386086-2b2d8798-89e4-44f6-b622-f1eac02bf7b5.png)
...you can even set a range `thin_range` to something like `(0.05,0.5)` to also differentiate between thin and thick clouds
![thin_seg](https://user-images.githubusercontent.com/13435425/207386371-85dbca61-64b6-4001-b4c0-6bfb0fbe0879.png)
and this is an example content of each label:
![labels1](https://user-images.githubusercontent.com/13435425/207386548-3322bcda-662d-4c05-8dbf-d74fb3db0a5a.png)
---
I hope these features prove useful! :rocket: