This manual provides a comprehensive guide for using the Monastic Color Reproduction (MCR) tool, a software-based method for creating accurate physical charts of the Monk Skin Tone (MST) scale using consumer-grade color printers. The tool is designed for use in medical device assessment studies and other applications where consistent skin tone evaluation is critical.
The Monastic Color Reproduction tool is a collection of MATLAB classes and live scripts providing the following functions for printing and assessing a Monk skin tone scale:
- calculate the colorimetrical characteristics of the Monk skin tone scale,
- calculate the tolerances and grade each of the 10 patches in the Monk skin tone scale,
- determine whether a color printer can reproduce the Monk skin tone scale, and
- determine the correct RGB pixel values to accurately reproduce the Monk skin tone scale for a specific printer.
The Monastic Color Reproduction tool is intended for users who do not possess professional color management software, hardware, expertise, and services but wish to create an accurate physical MST chart for visually judging and classifying a subject’s skin tone in a medical device clinical trial where consistent and comparable subgrouping is imperative.
The following resources are required to use the tool:
- A MATLAB license (for functions 1, 2, 3, and 4).
- A colorimeter or spectrophotometer for measurements (for functions 3 and 4).
- A color printer and compatible paper (for functions 3 and 4).
The code can be found at https://github.com/DIDSR/mcr.
Three MATLAB classes are provided as the interface for the user to use:
MonkSkinToneColorFaceColorGrid
Three MATLAB live scripts are provided to demonstrate how to use the three classes:
README_MonkSkinTone.mlxREADME_ColorFace.mlxREADME_ColorGrid.mlx
The remaining classes are helper functions that do not interact with the user directly.
-
Download the MATLAB code from github.com to a local computer by cloning the git repo:
git clone https://github.com/DIDSR/mcr -
A folder
mcrcontaining the MATLAB code will be created on the local computer -
Start the MATLAB application
-
In the MATLAB environment, change the current directory to the
mcrfolder:cd mcr -
Now the MCR code can be reviewed, modified, and executed
This section explains how to use the tool to utilize the 4 functions.
- Use the
MonkSkinToneclass - Input: none
- Output: tables and figures
See the example in README_MonkSkinTone.mlx
- Use the
MonkSkinToneclass - Input: none
- Output: table and figure
See the example in README_MonkSkinTone.mlx
- Use the
MonkSkinToneclass - Input: the CIELAB measurement data of the 10 patches
- Output: tables
See the example in README_MonkSkinTone.mlx
- Use the
ColorFaceclass - Input: the CIELAB measurement data of the 6 image files (
R000.png,G000.png,B000.png,R255.png,G255.png, andB255.png) - Output: figure and gamut envelope size
See the example in README_ColorFace.mlx
4. How to determine the correct RGB pixel values to accurately reproduce the Monk skin tone scale for a specific printer
- Use the
ColorGridclass - Input: the dE step, the initial RGB values of the 10 patches, and the CIELAB measurement data
- Output: the best RGB values
See the example in README_ColorGrid.mlx
-
Reference: The reference MST chart must be defined colorimetrically (i.e., objectively, quantitatively, and device-independently) such that the same target is used by all users and skin tone data can be correctly collected and interchangeable. This is addressed by function 1.
-
Figure of merit: The printed MST chart needs to be compared with the reference using a rational, standard, and objective metric to evaluate the errors such that the quality can be objectively determined. This tool uses the CIE1976 color difference metric.
-
Acceptance criteria: The acceptance criteria of the printed MST chart need to be quantitatively established with justifications such that only qualified MST charts are used in data collection. This is addressed by function 2.
-
Implementation: The procedure for calibrating and printing the MST chart needs to be described clearly. Minimum requirements for the printer, paper, instruments, software programs, and expertise need to be specified. This is addressed by functions 3 and 4.
To create an accurate MST chart with a given printer using the MCR tool, follow these steps:
- Generate test charts: Use the MATLAB code to generate six test charts ('R000.png', 'G000.png', 'B000.png', 'R255.png', 'G255.png', and 'B255.png'), each representing a face of the RGB color cube.
- Print the test charts: Print the six test charts using the selected printer and paper. Disable any color correction settings in the printer driver (e.g., using the “no color adjustment” setting).
- Measure the printed charts: Use a spectrophotometer or colorimeter to measure the printed charts and obtain CIELAB values.
- Import measurement data: Input the measurement data into the tool. The software will calculate and display the color gamut of the printer/paper combination in the CIELAB color space. Compare the color gamut with the MST scale to ensure the printer can reproduce it.
- Assess color gamut: The tool generates a visual representation of the color gamut of the printer/paper combination in the CIELAB color space. The color gamut can be compared to the MST scale to determine if the printer is capable of printing an accurate MST chart.
- Initial RGB values: The tool starts with an initial estimate of the RGB values for each MST level, which can be the sRGB values converted from the CIELAB data using a D65 white point.
- Generate color grids: For each of the ten MST levels, use the MATLAB code to generate a "ColorGrid" object, creating a 3x3x3 grid of color patches around the initial RGB estimate.
- Print the generated charts: Print the generated charts using the selected printer and paper.
- Measure the printed charts: Use a spectrophotometer or colorimeter to measure the printed charts.
- Analyze measurement data: Input the measurements into the MATLAB code. The tool will assess the measurements, determine the closest color to the target within the grid. If the color is not within acceptable tolerances, a new search will start, using the closest color as the center, with an adjusted search range until the correct color is found.
- Iterate: Repeat this process for all ten MST levels. The software provides a textual report showing the best matched RGB values, and the color difference between the output and reference.
- Adjust search parameters: If needed, the user can adjust the spacing of the search grid to expand the search range.
- Prepare the template: Once the best RGB values for each MST level have been identified, input them into a pre-arranged template. This template should include a traceable serial number, printer setup details, source data of the patches, print date, and a sequence number.
- Print the MST chart: Print the complete MST chart soon after characterization, to avoid any changes in the printing environment.
- Drying time: Allow the ink to dry for at least 24 hours, to allow the colors to stabilize.
- Measure the printed chart: Measure the printed chart using a spectrophotometer or colorimeter.
- Validate the chart: Input the measurements into the MATLAB code to validate the chart.
- Label the swatches: Label each swatch with its grading result.
- Certify the chart: Sign and date the validated chart.
- Storage: Store the printed chart according to the manufacturer's instructions (e.g., appropriate temperature, humidity, light, and chemical protection).
- Re-validation: Re-validate the chart periodically, based on the lifetime of the ink and paper, to ensure its accuracy.
This software and documentation (the "Software") were developed at the Food and Drug Administration (FDA) by employees of the Federal Government in the course of their official duties. Pursuant to Title 17, Section 105 of the United States Code, this work is not subject to copyright protection and is in the public domain. Permission is hereby granted, free of charge, to any person obtaining a copy of the Software, to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, or sell copies of the Software or derivatives, and to permit persons to whom the Software is furnished to do so. FDA assumes no responsibility whatsoever for use by other parties of the Software, its source code, documentation or compiled executables, and makes no guarantees, expressed or implied, about its quality, reliability, or any other characteristic. Further, use of this code in no way implies endorsement by the FDA or confers any advantage in regulatory decisions. Although this software can be redistributed and/or modified freely, we ask that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.
The project is licensed under Creative Commons Zero v1.0 Universal LICENSE.
-
GitHub Repository: https://github.com/DIDSR/mcr
-
Wei-Chung Cheng, "Monastic Color Reproduction: A Software Tool for Printing and Assessing the Monk Skin Tone Scale" in Journal of Imaging Science and Technology, 2024, pp 1 - 13, https://doi.org/10.2352/J.ImagingSci.Technol.2024.68.5.050404
-
U.S. FDA. "Discussion Paper: Approach for Improving the Performance Evaluation of Pulse Oximeter Devices Taking Into Consideration Skin Pigmentation, Race, and Ethnicity," 2023.