KALMUS

KALMUS: tools for color analysis of films - Published in JOSS (2021)

https://github.com/kalmus-color-toolkit/kalmus

Science Score: 100.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 15 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

digital-humanities image-analysis pypi-package python3 video-processing

Scientific Fields

Mathematics Computer Science - 88% confidence
Biology Life Sciences - 84% confidence
Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 4 months ago · JSON representation ·

Repository

KALMUS Color Toolkit for color analysis and visualization in film studies.

Basic Info
Statistics
  • Stars: 18
  • Watchers: 3
  • Forks: 5
  • Open Issues: 0
  • Releases: 11
Topics
digital-humanities image-analysis pypi-package python3 video-processing
Created over 5 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Project Status Python Version PyPI Version status codecov License

KALMUS

KALMUS is a Python package for the computational analysis of colors in films. It provides quantitative tools to study and compare the use of film color. This package serves two purposes: (1) various ways to measure, calculate and compare a film's colors and (2) various ways to visualize a film's color. We have named the software KALMUS in homage to Natalie Kalmus (1882 - 1965), a Technicolor Director who oversaw the color palettes of nearly 300 Hollywood feature films.

KALMUS utilizes the movie barcode as a visualization of the film's color. It has a modularized pipeline for the generation of barcodes using different measures of color and region of interest in each film frame. KALMUS provides a low-level API, high-level command line, and Graphic user interface for audience from all backgrounds to take advantage of its functionality.

Examples of Barcode visualization:


Figure 1. Mission: Impossible (1996) color barcode using the average color of whole frame for each frame


Figure 2. Mission: Impossible (1996) color barcode using the average color of foreground of each frame

API Documentation

The KALMUS API reference is now available on https://kalmus-color-toolkit.github.io/KALMUS/kalmus.html.

Installation Guide

Python Version PyPI Version build workflow

The kalmus package requires a python with version 3.7 or 3.8.

The package is released on PyPI (Project Homepage). After you installed the python==3.7, 3.8, you can install the kalmus using pip (recommended)

$ pip install kalmus

Alternatively, you could install the kalmus locally by first cloning this GitHub repo. Then, move to the top directory of cloned kalmus project folder and install using the pip command

$ pip install .

In both methods, the package's dependencies will be automatically installed. You can verify if the kalmus has been installed in your environment using the pip command

$ pip show kalmus

Alternatively, in version 1.3.7 and above, you can check the version of installed kalmus using its .__version__ attribute.

```jupyter

import kalmus print(kalmus.version) # Warning: The version attribute is not available in the kalmus v.1.3.6 and backward 1.3.7 ```

For users with Apple M1 Chip (arm64 Architecture)

As @elektrobohemian mentioned in issue #4, kalmus cannot build natively on Apple M1 processors because of kalmus's dependencies on NumPy. You may be able to install kalmus under a Rosetta emulation with Python 3.7.

Get Started

KALMUS has a low-level API, high-level command line, and Graphic user interface for audience from all backgrounds to take advantage of its functionality.

To get started on KALMUS, we encourage you to check the Jupyter notebook tutorials in the notebooks folder. We provide the interactive notebook tutorials for users to get started on KALMUS using its API, GUI, and CLI. Notice that the Command-line interface (CLI) is only available in KALMUS v1.3.7 or onward.

Contribution

We encourage contributions, including bug fixes and new features, from our community users. When contributing to the kalmus package, please contact the project maintainers by email yc015@bucknell.edu or opening an issue. If your bug fixes or new features change the current behaviors of package, please specify the changes and reasons in the discussion with project maintainers.

We encourage inclusive and friendly discussion. Please follow our code of conduct when communicating.

Test Suite

codecov codecov workflow

We provide an automated test suite that covers the core functionality of KALMUS. Before running the automated test suite locally, make sure you have installed the latest versions of pytest, pytest-cov, and kalmus, and you have cloned the project repository on master branch.

To run the test suite:
- Go to the top directory of cloned KALMUS project - Use command $ python -m pytest tests --cov=kalmus --cov-config=.coveragerc --cov-report term-missing

See the Test Suite Guide for more details.

Citation

status

If you find our software is useful in your work, please cite our paper that describes the usage of KALMUS in the analysis of film colors. DOI: https://doi.org/10.21105/joss.03156

Chen et al., (2021). KALMUS: tools for color analysis of films. Journal of Open Source Software, 6(61), 3156, https://doi.org/10.21105/joss.03156

Here is the BibTex citation of our work:

@article{Chen2021,
    doi = {10.21105/joss.03156},
    url = {https://doi.org/10.21105/joss.03156},
    year = {2021},
    volume = {6},
    number = {61},
    pages = {3156},
    author = {Yida Chen and Eric Faden and Nathan C. Ryan},
    title = {KALMUS: tools for color analysis of films},
    journal = {Journal of Open Source Software}
}

Acknowledgment

The authors wish to thank the Mellon Foundation, the Dalal Family Foundation, and the Bucknell University Humanities Center for their support on this project. The project is released under the open-source MIT License.

Update Log

The full update log (from v1.3.0 to v1.3.14) is now available on https://kalmus-color-toolkit.github.io/KALMUS/update_log.html

Owner

  • Name: KALMUS Color Toolkit
  • Login: KALMUS-Color-Toolkit
  • Kind: organization
  • Email: yc015@bucknell.edu

KALMUS Color Toolkit for color analysis and visualization in film studies.

JOSS Publication

KALMUS: tools for color analysis of films
Published
May 18, 2021
Volume 6, Issue 61, Page 3156
Authors
Yida Chen
Bucknell University
Eric Faden
Bucknell University
Nathan C. Ryan ORCID
Bucknell University
Editor
George K. Thiruvathukal ORCID
Tags
computer vision color

Citation (citations.bib)

@article{Chen2021Kalmus,
        doi = {10.21105/joss.03156},
        url = {https://doi.org/10.21105/joss.03156},
        year = {2021},
        volume = {6},
        number = {61},
        pages = {3156},
        author = {Yida Chen and Eric Faden and Nathan C. Ryan},
        title = {KALMUS: tools for color analysis of films},
        journal = {Journal of Open Source Software}
        }

GitHub Events

Total
  • Watch event: 2
  • Fork event: 1
Last Year
  • Watch event: 2
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 273
  • Total Committers: 2
  • Avg Commits per committer: 136.5
  • Development Distribution Score (DDS): 0.051
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Yida Chen y****5@b****u 259
nathancryan n****n@g****m 14
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 2
  • Total pull requests: 3
  • Average time to close issues: 13 days
  • Average time to close pull requests: 13 minutes
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 8.0
  • Average comments per pull request: 0.33
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • elektrobohemian (1)
  • thomakra (1)
Pull Request Authors
  • yc015 (3)
Top Labels
Issue Labels
documentation (1) Installation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 84 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 49
  • Total maintainers: 1
pypi.org: kalmus

kalmus film color analysis tool

  • Versions: 49
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 84 Last month
Rankings
Dependent packages count: 7.3%
Dependent repos count: 11.8%
Forks count: 15.4%
Average: 15.8%
Stargazers count: 19.4%
Downloads: 25.0%
Maintainers (1)
Last synced: 4 months ago

Dependencies

.github/workflows/python-package.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/test-codecov.yml actions
  • actions/checkout master composite
  • actions/setup-python master composite
  • codecov/codecov-action v1 composite
requirements.txt pypi
  • Jinja2 >=2.11.3
  • MarkupSafe ==1.1.1
  • Pillow >=8.1.1
  • PyWavelets ==1.1.1
  • Pygments >=2.7.4
  • Send2Trash ==1.5.0
  • attrs ==19.1.0
  • backcall ==0.1.0
  • biopython ==1.78
  • bleach >=3.3.0
  • certifi ==2020.12.5
  • cycler ==0.10.0
  • decorator ==4.4.0
  • defusedxml ==0.6.0
  • entrypoints ==0.3
  • imageio ==2.9.0
  • ipykernel ==5.1.1
  • ipython >=7.16.3
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.5.0
  • jedi ==0.14.1
  • joblib ==1.0.0
  • jsonschema ==3.0.1
  • jupyter ==1.0.0
  • jupyter-console ==6.0.0
  • kiwisolver ==1.3.1
  • matplotlib ==3.2.2
  • mistune ==0.8.4
  • mpmath ==1.1.0
  • nbconvert ==5.5.0
  • nbformat ==4.4.0
  • networkx ==2.5
  • nose ==1.3.7
  • notebook >=6.1.5
  • numpy >=1.21
  • opencv-python ==4.4.0.46
  • pandocfilters ==1.4.2
  • parso ==0.5.1
  • pickleshare ==0.7.5
  • prometheus-client ==0.7.1
  • prompt-toolkit ==2.0.9
  • pyparsing ==2.4.1.1
  • pyrsistent ==0.15.4
  • python-dateutil ==2.8.0
  • pytz ==2019.1
  • pywinpty ==0.5.5
  • qtconsole ==4.5.2
  • scikit-image >=0.16.2
  • scikit-learn ==0.24.0
  • scipy ==1.5.4
  • six ==1.12.0
  • sympy ==1.4
  • terminado ==0.8.2
  • testpath ==0.4.2
  • threadpoolctl ==2.1.0
  • tifffile ==2020.12.8
  • traitlets ==4.3.2
  • wcwidth ==0.1.7
  • webencodings ==0.5.1
  • widgetsnbextension ==3.5.0
  • wincertstore ==0.2
setup.py pypi
  • biopython *
  • kiwisolver >=1.3.1
  • matplotlib >=3.2.2
  • numpy *
  • opencv-python *
  • pandas *
  • scikit-image >=0.16.2
  • scikit-learn *
  • scipy *