A Python package implementing various HDRI / Radiance image processing algorithms.

Overview

Colour - HDRI

Develop Build Status Coverage Status Code Grade Package Version

A Python package implementing various HDRI / Radiance image processing algorithms.

It is open source and freely available under the New BSD License terms.

https://raw.githubusercontent.com/colour-science/colour-hdri/master/docs/_static/Radiance_001.png

1   Features

The following features are available:

  • HDRI / Radiance Image Generation
  • Debevec (1997) Camera Response Function Computation
  • Grossberg (2003) Histogram Based Image Sampling
  • Variance Minimization Light Probe Sampling
  • Global Tonemapping Operators
  • Adobe DNG SDK Colour Processing
  • Absolute Luminance Calibration
  • Digital Still Camera (DSC) Exposure Model
  • Raw Processing Helpers

2   Installation

Because of their size, the resources dependencies needed to run the various examples and unit tests are not provided within the Pypi package. They are separately available as Git Submodules when cloning the repository.

2.1   Primary Dependencies

Colour - HDRI requires various dependencies in order to run:

2.2   Optional Features Dependencies

2.3   Pypi

Once the dependencies are satisfied, Colour - HDRI can be installed from the Python Package Index by issuing this command in a shell:

pip install --user colour-hdri

The optional features dependencies are installed as follows:

pip install --user 'colour-hdri[optional]'

The figures plotting dependencies are installed as follows:

pip install --user 'colour-hdri[plotting]'

The overall development dependencies are installed as follows:

pip install --user 'colour-hdri[development]'

3   Usage

3.1   API

The main reference for Colour - HDRI is the Colour - HDRI Manual.

3.2   Examples

Various usage examples are available from the examples directory.

4   Contributing

If you would like to contribute to Colour - HDRI, please refer to the following Contributing guide for Colour.

5   Bibliography

The bibliography is available in the repository in BibTeX format.

6   See Also

6.1   Publications

Advanced High Dynamic Range Imaging: Theory and Practice was used as a reference for some of the algorithms of Colour - HDRI.

6.2   Software

C/C++

Piccante was used to verify the Grossberg (2003) Histogram Based Image Sampling.

Matlab

7   Code of Conduct

The Code of Conduct, adapted from the Contributor Covenant 1.4, is available on the Code of Conduct page.

8   Contact & Social

The Colour Developers can be reached via different means:

9   About

Colour - HDRI by Colour Developers
Copyright © 2015-2021 – Colour Developers – [email protected]
This software is released under terms of New BSD License: https://opensource.org/licenses/BSD-3-Clause
Comments
  • Unable to Run Adobe DNG Converter from Python

    Unable to Run Adobe DNG Converter from Python

    I've been trying to run the Merge from Raw Files with Post Demosaicing example and I'm running into an issue where Adobe DNG Converter does not run when it's called. The code progresses without any errors, but the .dng files are not created.

    I'm on Windows. I've installed Adobe DNG Converter and added the executable to my Path. I'm able to run the exact same command colour-hdri is trying to run in convert_raw_files_to_dng_files() from the command line without issue ("Adobe DNG Converter" -e -d "C:\path\to\images" "C:\path\to\images\IMG.CR2"). I've tried running from an admin console, but still get the same issue.

    I realize this isn't strictly a colour-hdri issue, but figured others might have come across this issue as well.

    opened by JoeWise 2
  • Bump bleach from 3.2.1 to 3.3.0

    Bump bleach from 3.2.1 to 3.3.0

    Bumps bleach from 3.2.1 to 3.3.0.

    Changelog

    Sourced from bleach's changelog.

    Version 3.3.0 (February 1st, 2021)

    Backwards incompatible changes

    • clean escapes HTML comments even when strip_comments=False

    Security fixes

    • Fix bug 1621692 / GHSA-m6xf-fq7q-8743. See the advisory for details.

    Features

    None

    Bug fixes

    None

    Version 3.2.3 (January 26th, 2021)

    Security fixes

    None

    Features

    None

    Bug fixes

    • fix clean and linkify raising ValueErrors for certain inputs. Thank you @Google-Autofuzz.

    Version 3.2.2 (January 20th, 2021)

    Security fixes

    None

    Features

    • Migrate CI to Github Actions. Thank you @hugovk.

    Bug fixes

    • fix linkify raising an IndexError on certain inputs. Thank you @Google-Autofuzz.
    Commits
    • 79b7a3c Merge pull request from GHSA-vv2x-vrpj-qqpq
    • 842fcb4 Update for v3.3.0 release
    • 1334134 sanitizer: escape HTML comments
    • c045a8b Merge pull request #581 from mozilla/nit-fixes
    • 491abb0 fix typo s/vnedoring/vendoring/
    • 10b1c5d vendor: add html5lib-1.1.dist-info/REQUESTED
    • cd838c3 Merge pull request #579 from mozilla/validate-convert-entity-code-points
    • 612b808 Update for v3.2.3 release
    • 6879f6a html5lib_shim: validate unicode points for convert_entity
    • 90cb80b Update for v3.2.2 release
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump bleach from 3.1.0 to 3.1.4

    Bump bleach from 3.1.0 to 3.1.4

    Bumps bleach from 3.1.0 to 3.1.4.

    Changelog

    Sourced from bleach's changelog.

    Version 3.1.4 (March 24th, 2020)

    Security fixes

    • bleach.clean behavior parsing style attributes could result in a regular expression denial of service (ReDoS).

      Calls to bleach.clean with an allowed tag with an allowed style attribute were vulnerable to ReDoS. For example, bleach.clean(..., attributes={'a': ['style']}).

      This issue was confirmed in Bleach versions v3.1.3, v3.1.2, v3.1.1, v3.1.0, v3.0.0, v2.1.4, and v2.1.3. Earlier versions used a similar regular expression and should be considered vulnerable too.

      Anyone using Bleach <=v3.1.3 is encouraged to upgrade.

      https://bugzilla.mozilla.org/show_bug.cgi?id=1623633

    Backwards incompatible changes

    • Style attributes with dashes, or single or double quoted values are cleaned instead of passed through.

    Features

    None

    Bug fixes

    None

    Version 3.1.3 (March 17th, 2020)

    Security fixes

    None

    Backwards incompatible changes

    None

    Features

    • Add relative link to code of conduct. (#442)

    • Drop deprecated 'setup.py test' support. (#507)

    ... (truncated)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump bleach from 3.1.0 to 3.1.2

    Bump bleach from 3.1.0 to 3.1.2

    Bumps bleach from 3.1.0 to 3.1.2.

    Changelog

    Sourced from bleach's changelog.

    Version 3.1.2 (March 11th, 2020)

    Security fixes

    • bleach.clean behavior parsing embedded MathML and SVG content with RCDATA tags did not match browser behavior and could result in a mutation XSS.

      Calls to bleach.clean with strip=False and math or svg tags and one or more of the RCDATA tags script, noscript, style, noframes, iframe, noembed, or xmp in the allowed tags whitelist were vulnerable to a mutation XSS.

      This security issue was confirmed in Bleach version v3.1.1. Earlier versions are likely affected too.

      Anyone using Bleach <=v3.1.1 is encouraged to upgrade.

      https://bugzilla.mozilla.org/show_bug.cgi?id=1621692

    Backwards incompatible changes

    None

    Features

    None

    Bug fixes

    None

    Version 3.1.1 (February 13th, 2020)

    Security fixes

    • bleach.clean behavior parsing noscript tags did not match browser behavior.

      Calls to bleach.clean allowing noscript and one or more of the raw text tags (title, textarea, script, style, noembed, noframes, iframe, and xmp) were vulnerable to a mutation XSS.

      This security issue was confirmed in Bleach versions v2.1.4, v3.0.2, and v3.1.0. Earlier versions are probably affected too.

    ... (truncated)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Bump bleach from 3.1.0 to 3.1.1

    Bump bleach from 3.1.0 to 3.1.1

    Bumps bleach from 3.1.0 to 3.1.1.

    Changelog

    Sourced from bleach's changelog.

    Version 3.1.1 (February 13th, 2020)

    Security fixes

    • bleach.clean behavior parsing noscript tags did not match browser behavior.

      Calls to bleach.clean allowing noscript and one or more of the raw text tags (title, textarea, script, style, noembed, noframes, iframe, and xmp) were vulnerable to a mutation XSS.

      This security issue was confirmed in Bleach versions v2.1.4, v3.0.2, and v3.1.0. Earlier versions are probably affected too.

      Anyone using Bleach <=v3.1.0 is highly encouraged to upgrade.

      https://bugzilla.mozilla.org/show_bug.cgi?id=1615315

    Backwards incompatible changes

    None

    Features

    None

    Bug fixes

    None

    Bleach changes

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Error when using absolute_luminance_calibration_Lagarde2016()

    Error when using absolute_luminance_calibration_Lagarde2016()

    Question

    Hiyo again;

    I have a bit of code that does this:

            (img, attribs) = colour.read_image(os.path.abspath(file), 
                                    method="OpenImageIO", 
                                    attributes=True )
    
            img = colour_hdri.absolute_luminance_calibration_Lagarde2016(img, LUX) # lux is an input arg
    

    Trying to run it, I see:

    numpy.core._exceptions._UFuncNoLoopError: ufunc 'multiply' did not contain a loop with signature matching types (dtype('float64'), dtype('<U5')) -> None

    Is there a data type conversion I should be doing when passing the image to this function?

    API Normal Defect 
    opened by ahemberger 1
  • Exception raised when importing in Python 3.10 because of

    Exception raised when importing in Python 3.10 because of "MutableSequence".

    File "/home/kalgecin/.local/lib/python3.10/site-packages/colour_hdri/__init__.py", line 33, in <module>
      from .utilities import (EXIF_EXECUTABLE, ExifTag, Image, ImageStack, Metadata,
    File "/home/kalgecin/.local/lib/python3.10/site-packages/colour_hdri/utilities/__init__.py", line 10, in <module>
      from .image import Metadata, Image, ImageStack
    File "/home/kalgecin/.local/lib/python3.10/site-packages/colour_hdri/utilities/image.py", line 17, in <module>
      from collections import MutableSequence
    ImportError: cannot import name 'MutableSequence' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
    

    python 3.10 moved collections to collections.abc from what i can tell

    API Critical Defect 
    opened by kalgecin 1
  • Bump babel from 2.9.0 to 2.9.1

    Bump babel from 2.9.0 to 2.9.1

    Bumps babel from 2.9.0 to 2.9.1.

    Release notes

    Sourced from babel's releases.

    Version 2.9.1

    Bugfixes

    • The internal locale-data loading functions now validate the name of the locale file to be loaded and only allow files within Babel's data directory. Thank you to Chris Lyne of Tenable, Inc. for discovering the issue!
    Changelog

    Sourced from babel's changelog.

    Version 2.9.1

    Bugfixes

    
    * The internal locale-data loading functions now validate the name of the locale file to be loaded and only
      allow files within Babel's data directory.  Thank you to Chris Lyne of Tenable, Inc. for discovering the issue!
    
    Commits
    • a99fa24 Use 2.9.0's setup.py for 2.9.1
    • 60b33e0 Become 2.9.1
    • 412015e Merge pull request #782 from python-babel/locale-basename
    • 5caf717 Disallow special filenames on Windows
    • 3a700b5 Run locale identifiers through os.path.basename()
    • 5afe2b2 Merge pull request #754 from python-babel/github-ci
    • 58de834 Replace Travis + Appveyor with GitHub Actions (WIP)
    • d1bbc08 import_cldr: use logging; add -q option
    • 156b7fb Quiesce CLDR download progress bar if requested (or not a TTY)
    • 613dc17 Make the import warnings about unsupported number systems less verbose
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump pillow from 8.1.0 to 8.3.2

    Bump pillow from 8.1.0 to 8.3.2

    Bumps pillow from 8.1.0 to 8.3.2.

    Release notes

    Sourced from pillow's releases.

    8.3.2

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.2.html

    Security

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    Python 3.10 wheels

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    Fixed regressions

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    8.3.1

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.1.html

    Changes

    8.3.0

    https://pillow.readthedocs.io/en/stable/releasenotes/8.3.0.html

    Changes

    ... (truncated)

    Changelog

    Sourced from pillow's changelog.

    8.3.2 (2021-09-02)

    • CVE-2021-23437 Raise ValueError if color specifier is too long [hugovk, radarhere]

    • Fix 6-byte OOB read in FliDecode [wiredfool]

    • Add support for Python 3.10 #5569, #5570 [hugovk, radarhere]

    • Ensure TIFF RowsPerStrip is multiple of 8 for JPEG compression #5588 [kmilos, radarhere]

    • Updates for ImagePalette channel order #5599 [radarhere]

    • Hide FriBiDi shim symbols to avoid conflict with real FriBiDi library #5651 [nulano]

    8.3.1 (2021-07-06)

    • Catch OSError when checking if fp is sys.stdout #5585 [radarhere]

    • Handle removing orientation from alternate types of EXIF data #5584 [radarhere]

    • Make Image.array take optional dtype argument #5572 [t-vi, radarhere]

    8.3.0 (2021-07-01)

    • Use snprintf instead of sprintf. CVE-2021-34552 #5567 [radarhere]

    • Limit TIFF strip size when saving with LibTIFF #5514 [kmilos]

    • Allow ICNS save on all operating systems #4526 [baletu, radarhere, newpanjing, hugovk]

    • De-zigzag JPEG's DQT when loading; deprecate convert_dict_qtables #4989 [gofr, radarhere]

    • Replaced xml.etree.ElementTree #5565 [radarhere]

    ... (truncated)

    Commits
    • 8013f13 8.3.2 version bump
    • 23c7ca8 Update CHANGES.rst
    • 8450366 Update release notes
    • a0afe89 Update test case
    • 9e08eb8 Raise ValueError if color specifier is too long
    • bd5cf7d FLI tests for Oss-fuzz crash.
    • 94a0cf1 Fix 6-byte OOB read in FliDecode
    • cece64f Add 8.3.2 (2021-09-02) [CI skip]
    • e422386 Add release notes for Pillow 8.3.2
    • 08dcbb8 Pillow 8.3.2 supports Python 3.10 [ci skip]
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump notebook from 6.1.6 to 6.4.1

    Bump notebook from 6.1.6 to 6.4.1

    Bumps notebook from 6.1.6 to 6.4.1.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • How to convert DNG raw image to sRGB Format?

    How to convert DNG raw image to sRGB Format?

    Hi

    I am trying to develop raw dng image of DeepISP dataset (https://www.kaggle.com/knn165897/s7-isp-dataset). As I want to process raw image with min. processing and want to learn the pipeline of raw space conversion to image what can be viewed without introducing non-linearity (sRGB without gamma and tone).

    Following are the steps that I took :

    1. Dcraw Param : Initial dcraw used in lib are (-D -W -4 -t 0 -T), but it does not avoid the default WB therefore I changed to (-r 1 1 1 1 -j -D -W -4 -o 0 -t 0 -T). -r will ensure that not channel is provided any gain.
    2. Read tiff file produced in previous step by dcraw.
    3. Demosaic : Just to keep simple, I tried using bilinear but color-demosaic lib producing demosaic image out of range. This seems to be not possible with bilinear. Therefore switch to opencv for demosaicing and normalize the output again.
    4. Cam_to_XYZ : taking motivation from the dng example HERE , used camera_neutral_to_xy and camera_space_to_XYZ_matrix function to get the cam_to_xyz matrix. After multiplying the matrix with image, everytime image is produce way beyond the [0,1] range. This seems to be fine and illumination after adaptation if by default D50 as it is DNG
    5. XYZ_to_sRGB : after having image in XYZ coordinate, it is required to convert into well known color space for visualization. As sRGB is widely used for the task. Continue same motivation from tutorial, I tried to use XYZ_to_sRGB function with same setting except switching off cat.
    6. After this conversion, i understand i can get negative values due to limitation of color space gamut. However i am getting value in the range of [-0.2 , 3.4]

    The upper limit is way beyond the required values. If the upper limit is near 1 like 1.02/1.1, it make sense to clip it. But now, this value is way beyond the upper limit. I don't want to do gamma at this point to preserve the linearity.

    Is there any issue with therotation matrix calculation of cam_to_xyz or xyz_to_srgb? If Library is not handling these cases, how can we handle it? @KelSolaar @MichaelMauderer

    API Discussion 
    opened by raviy0807 1
  • hdri to spherical harmonics

    hdri to spherical harmonics

    Description

    I found that there is mention of converting HDRI to spherical harmonics in PIFu, do you have any plans to implement it?

    https://github.com/shunsukesaito/PIFu/issues/9 https://github.com/shunsukesaito/PIFu/issues/35

    https://github.com/google/spherical-harmonics/blob/master/sh/spherical_harmonics.h#L142

    Feature 
    opened by LogWell 1
  • Implement support for

    Implement support for "Piece-wise Power Curves" tonemapping operator.

    References

    • http://filmicworlds.com/blog/filmic-tonemapping-with-piecewise-power-curves/
    • https://www.desmos.com/calculator/12vlon6rpu
    • https://colab.research.google.com/drive/1YKOF_uYi7zL-ihrENXUJOC2r47QNSRAo?usp=sharing
    API Feature P2 
    opened by KelSolaar 1
Releases(v0.2.1)
  • v0.2.1(Dec 3, 2022)

    This release is mainly compatibility release with Colour 0.4.2 providing support for Python 3.11.

    The minimum Python version is 3.9 and the following scientific packages minimum versions are required:

    • Numpy >= 1.20
    • Scipy >= 1.7
    • colour-science >= 0.4.2

    Features

    • Implement support for lens vignette correction with the colour_hdri.characterise_vignette and colour_hdri.correct_vignette definitions. (d2c1268e8f9924007fbee70bbecbc18bd14dea2d, @KelSolaar)

    Changes

    colour_hdri

    Object | Name | Author --------------------------------------------|------------------------------|----------- colour_hdri.XYZ_to_camera_space_matrix | matrix_XYZ_to_camera_space | @KelSolaar colour_hdri.camera_space_to_XYZ_matrix | matrix_camera_space_to_XYZ | ... colour_hdri.image_stack_to_radiance_image | image_stack_to_HDRI | ...

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Feb 26, 2022)

  • v0.1.8(Nov 28, 2020)

  • v0.1.7(Mar 31, 2020)

    Features

    colour_hdri.exposure

    • Implement support for modeling Digital Still Camera (DSC) exposure with the colour_hdri.focal_plane_exposure, colour_hdri.arithmetic_mean_focal_plane_exposure, colour_hdri.saturation_based_speed_focal_plane_exposure, colour_hdri.exposure_value_100 and colour_hdri.photometric_exposure_scale_factor_Lagarde2014 definitions. The models implemented by theses definitions are appropriate to simulate a physical camera in an offline or realtime renderer. (@KelSolaar)
    • Add colour_hdri.luminance_to_exposure_value and colour_hdri.illuminance_to_exposure_value definitions. (@KelSolaar)

    Changes

    colour_hdri.exposure

    • colour_hdri.average_luminance~: (@KelSolaar)
      • Signature: average_luminance(N, t, S, k=12.5)
    • colour_hdri.average_illuminance~: (@KelSolaar)
      • Signature: average_illuminance(N, t, S, c=250)

    colour_hdri.utilities

    • ~colour_hdri.exposure_value~: (@KelSolaar)
      • Remove

    The following definitions have been moved from the colour_hdri.utilities sub-package to the colour_hdri.exposure sub-package:

    • colour_hdri.average_luminance
    • colour_hdri.average_illuminance
    • colour_hdri.luminance_to_exposure_value
    • colour_hdri.illuminance_to_exposure_value
    • colour_hdri.adjust_exposure
    Source code(tar.gz)
    Source code(zip)
  • v0.1.6(Oct 27, 2019)

  • v0.1.5(Mar 24, 2019)

    This release is a compatibility release with Colour 0.3.12

    Features

    colour_hdri.utilities

    • Implement support for average image illuminance with colour_hdri.average_illuminance definition. (@kelsolaar)

    Fixes

    colour_hdri.utilities

    • colour_hdri.average_luminance definition returns actual image average luminance and not its inverse. (@kelsolaar)
    • Fix incorrect exposure value computation in colour_hdri.exposure_value definition. (@kelsolaar)

    Changes

    colour_hdri.plotting

    • colour_hdri.plotting.radiance_image_strip_plot: (@kelsolaar)
      • Name: plot_radiance_image_strip
    • colour_hdri.plotting.tonemapping_operator_image_plot: (@kelsolaar)
      • Name: plot_tonemapping_operator_image
    Source code(tar.gz)
    Source code(zip)
  • v0.1.4(Feb 18, 2018)

  • v0.1.3(May 31, 2017)

    Fixes

    colour_hdri.generation

    • Fix conversion to radiance image exhibiting black pixels when using saturated bound images in colour_hdri.image_stack_to_radiance_image definition. (@kelsolaar)

    Features

    colour_hdri.utilities

    • colour_hdri.ImageStack class has now a colour_hdri.ImageStack.sort method allowing to sort the image stack with user given sorting key, e.g. average luminance. (@kelsolaar)

    Changes

    • colour_hdri.Image.read_data: (@kelsolaar)
      • Signature: read_data(self, decoding_cctf=None)
    • colour_hdri.ImageStack.from_files: (@kelsolaar)
      • Signature: from_files(image_files, decoding_cctf=None)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.2(Mar 12, 2017)

    Features

    colour_hdri.models

    • Implement support for Adobe DNG SDK colour processing with colour_hdri.xy_to_camera_neutral, colour_hdri.camera_neutral_to_xy, colour_hdri.XYZ_to_camera_space_matrix and colour_hdri.camera_space_to_XYZ_matrix definitions. (@kelsolaar)

    colour_hdri.recovery

    • Implement colour_hdri.highlights_recovery_LCHab definition performing highlights recovery in CIE LCHab colourspace. (@kelsolaar)

    Changes

    colour_hdri.utilities

    • colour_hdri.linear_conversion: (@kelsolaar)
      • Remove and replace with colour.linear_conversion.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.1(Oct 27, 2016)

    This release is a compatibility release with Colour 0.3.8

    Features

    colour_hdri.sampling

    • Implement colour_hdri.light_probe_sampling_variance_minimization definition sampling given light probe to find lights using Viriyothai (2009) variance minimization light probe sampling algorithm. (@kelsolaar)
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Mar 12, 2017)

Owner
colour-science
Colour Science & Digital Imaging
colour-science
Sombra is simple Raytracer written in pure Python.

Sombra Sombra is simple Raytracer written in pure Python. It's main purpose is to help understand how raytracing works with a clean code. If you are l

Hernaldo Jesus Henriquez Nuñez 10 Jul 16, 2022
GIMP script to export bitmap as GRAPHICS 4 file (aka SCREEN 5)

gimpfu-msx-gr4.py GIMP script to export bitmap as GRAPHICS 4 file (aka SCREEN 5). GRAPHICS 4 specs are: 256x212 (or 256x192); 16 color palette (from 5

Pedro de Medeiros 4 Oct 17, 2022
Art directed cropping, useful for responsive images

Art direction sets a focal point and can be used when you need multiple copies of the same Image but also in in different proportions.

Daniel 1 Aug 16, 2022
Generate different types of random avatars.

avatar-generator Generate different types of random avatars. Requirements Python3 pytorch=1.6 cv2=3.4 tqdm 1. Github-like avatars python generate_gi

Ming 11 Apr 02, 2022
Extract the ISO 11146 beam size from an image file

laserbeamsize Simple and fast calculation of beam sizes from a single monochrome image based on the ISO 11146 method of variances. Some effort has bee

Scott Prahl 21 Jan 06, 2023
Simple AI app that is guessing color of apple in picture

Apple Color Determinant Application that is guessing color of apple from image Install Pillow, sklearn and numpy, using command for your package manag

Gleb Nikitin 1 Oct 25, 2021
Python Digital Art Generator

Python Digital Art Generator The main goal of this repository is to generate all possible layers permutations given by the user in order to get unique

David Cuentas Mar 3 Mar 12, 2022
A tool and a library for SVG path data transformations.

SVG path data transformation toolkit A tool and a library for SVG path data transformations. Currently it supports a translation and a scaling. Usage

Igor Mikushkin 2 Mar 07, 2022
This Web App lets you convert your Normal Image to a SKETCHED one within a minute

This Web App lets you convert your Normal Image to a SKETCHED one within a minute

Avinash M 25 Nov 10, 2022
Convert any binary data to a PNG image file and vice versa.

What is PngBin? The name PngBin comes from an image format file extension PNG (Portable Network Graphics) and the word Binary. An image produced by Pn

Nathan Young 87 Dec 22, 2022
Avatar Generator Python

This is a simple avatar generator project which uses your webcam to take pictures and saves five different types of your images into your device including the original image.

Faisal Ahmed 3 Jan 23, 2022
An ascii art generator that's actually good. Does edge detection and selects the most appropriate characters.

Ascii Artist An ascii art generator that's actually good. Does edge detection and selects the most appropriate characters. Installing Installing with

18 Jan 03, 2023
Easily turn large sets of image urls to an image dataset. Can download, resize and package 100M urls in 20h on one machine.

img2dataset Easily turn large sets of image urls to an image dataset. Can download, resize and package 100M urls in 20h on one machine. Also supports

Romain Beaumont 1.4k Jan 01, 2023
A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files.

ObjSequenceViewer V0.5 A minimal, standalone viewer for 3D animations stored as stop-motion sequences of individual .obj mesh files. Installation: pip

csmailis 2 Aug 04, 2022
Multiparametric Image Analysis

Documentation The documentation is available on populse_mia's website here Installation From PyPI, for users By cloning the package, for developers Fr

Populse 9 Dec 14, 2022
将位图转为彩色矢量 svg 图片

一个将位图描摹为彩色矢量 svg 图片的程序,是一个命令行工具,使用 Python 脚本实现,运行环境 Python3.8+。 ✨ 效果 以一个字帖图片为例,这是 png 格式的位图(370KB): 这是颜

Haujet Zhao 104 Dec 30, 2022
ImageStrike是一款用于CTF中图片隐写的综合利用工具

🎈 简介 ImageStrike是一款使用PyQT5开发,用于CTF中图片隐写的综合利用工具

zR00t1 133 Dec 27, 2022
Turtle graphics || Python

turtle Turtle graphics || Python Rainbow (রংধনু) : Rainbow.using.Python.--.Python.Turtle.graphics.mp4 Human robot (মানব রোবট) : Draw.a.human.robot.usi

Jubair Ahmed Junjun 1 Oct 08, 2021
A linear stairs generation add-on for Blender

Linear Stairs Generator Table of Contents Installation Usage Screenshots Important Notes Requirements Blender 3.0 or newer. Installation: Download a z

Elhanan Flesch 4 May 17, 2022
🖼️ Draw Images or GIFs in your terminal

Drawitor Draw Images/GIFs in your terminal. Install pip install drawitor CLI Tool drawitor cat_dancing.gif Library The library is written in a simple

Eliaz Bobadilla 7 Dec 15, 2022