Package: coolpi
COOLPIDescriptionCOlour Operations Library for Processing Images(COOLPI)is an open-source toolbox programmed
in Python for the treatment of colorimetric and spectral data. It includes classes, methods and functions developed and tested following the colorimetric standards
published by the Commission Internationale de l'Éclairage(CIE, 2018).The COOLPI package has been developed as part of theINDIGOproject (IN-ventory and DI-sseminate G-raffiti along the
d-O-naukanal) carried out by theLudwig Boltzmann Institute for Archaeological Prospection and Virtual Archaeologyin close collaboration with theGEO Department of TU Wien University.The achievement of colour-accurate digital images is one of the primary research topics within the INDIGO project. Therefore, the COOLPI package also includes specific procedures for digital image processing and colour correction, particularly from images in RAW format.Although the COOLPI package has been designed mainly for Cultural Heritage documentation applications based on digital imaging techniques, we are confident that its applicability can be extended to any discipline where colour accurate registration is required.ModulesThe COOLPI package is structured in the following oriented objected programming (OOP) modules:Auxiliary: scripts with common operations for the COOLPI modules.Colour: CIE, Colour and Spectral classes, with the basic colorimetric tools based on CIE formulation or additional published standards.Image: ColourChecker and Image classes with the methods and functions for image processing.The COOLPI auxilary module integrates functions that are used in the classes to carry out operations related to data loading and checking,
creation and display of colorimetric and spectral graphs, and so on. It also includes the errors module, with the exceptions associated with each of the classes.The recommended way to import the auxiliary modules is as follows:>>>importcoolpi.auxiliary.common_operationsascop>>>importcoolpi.auxiliary.load_dataasld>>>importcoolpi.auxiliary.export_dataased>>>importcoolpi.auxiliary.plotascptThe auxiliary functions are designed to support the COOLPI package classes, they are not intended to be used independently by the user.
However, they can be imported and used directly from Python if desired.The colour module is one of the pillars of the COOLPI package, and is based on the colorimetric recommendations
of the CIE(CIE, 2018). This module includes the CIE, Colour and Spectral main classes, and the implementation of the basic tools for the colorimetric and spectral treatment of the data.The acquisition of colour-accurate digital images is one of the primary research topics in the international graffiti projectINDIGO.
Thus, the image module implemented in COOLPI provides the ColourChecker and Image classes, with the methods and functions necessary
to process and obtain accurate-colour data from digital images, especially in RAW format.In addition, a graphical interface GUI has been designed that integrates the main functionalities of the COOLPI package,
especially designed for non-programmer users.InstallationThe COOLPI package can be installed directly fromPyPirunning the pip command
on the system shell:>>>pipinstallcoolpiThe COOLPI package is based on Python 3.9. It is therefore recommended not to work  with lower python versions,
as the correct functioning of the library is not guaranteed.DependenciesFor the proper operation of COOLPI, the following packages must be installed together:Create plots and figures:matplotlib 3.5.2Scientific computing:numpy 1.22.4Computer vision:opencv-python 4.6.0.66Data Analysis:pandas 1.4.2Qt (GUI):pyside6 6.3.0RAW image processing:rawpy 0.17.1Scientific computing:scipy 1.8.1Statistical data visualization:seaborn 0.11.2The dependencies should have been installed automatically along with COOLPI. Please check that everything is correct.NotebooksA series of interactiveJupyter Notebookshave been prepared. They include practical examples
to help users become familiar with the classes, methods and functions implemented in the COOLPI package.01 CIE objects.(GitHub)02a Colour objects.(GitHub)02b CSC - Colour Space Conversion.(GitHub)02c CSC - Data test (Ohta&Robertson 2005).(GitHub)03a Spectral objects.(GitHub)04a Colour-difference.(GitHub)04b CIEDE2000 - Test data (Sharma et al., 2005).(GitHub)05 ColourChecker objects.(GitHub)06 Image objects.(GitHub)07 ColourCheckerRGB Data Extraction from ImagesGitHubUsers can find the interative Jupyter Notebooks in thenotebook folder of the COOLPI repository on GitHub.In order to use the interactive notebooks,JupyterLab, or its extension in the code editor used,
must be installed beforehand.GUIA graphical user interface has been designed together with the COOLPI package. The aim is to help especially non-programmers to use in an easy and practical way the functionalities implemented in the COOLPI package. Efforts have been made to develop the graphical interface in a way that makes it intuitive and friendly to use.To run the COOLPI-GUI:>>>fromcoolpi.gui.appimportGUI>>>gui=GUI()>>>gui.run()The COOLPI-GUI includes the following tools:CSC: Colour Space ConversionCDE: Colour $\Delta E$CPT: Colour Plot ToolSPC: Spectral ColourSPD: Illuminant SPDCCI: ColourChecker InspectorRCIP: RAW Colour Image ProcessingProject linksCOOLPI DocumentationCOOLPI SourceCOOLPI TestsGitHubGitHub NotebooksINDIGOLBI - ARCHPROTU Wien - GEO Department