Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのcolorsysモジュールでカラーシステム間の変換を行う方法

RGBカラーモデルとは

RGBカラーモデルは、加法混色の三原色である「赤(Red)」「緑(Green)」「青(Blue)」の頭文字から名付けられた加法混色モデルです。これら3つの光を加え合わせることで、さまざまな色を再現します。

RGBカラーモデルは、テレビやコンピュータなどの電子システムにおける画像の表現や表示に広く利用されており、人間の色に対する知覚に基づいて設計されています。RGB以外にも、以下のような色モデルの表現方法が存在します。

  • YIQ:輝度(Luminance)と色度(Chrominance)—— コンポジット映像信号で使用される
  • HLS:色相(Hue)、輝度(Luminance)、彩度(Saturation)
  • HSV:色相(Hue)、彩度(Saturation)、明度(Value)

colorsysモジュールの概要

Python標準ライブラリのcolorsysモジュールには、RGBカラーモデルと上記3つの座標系(YIQ・HLS・HSV)との間で色値を相互に変換するための関数が定義されています。各カラーシステムごとに、RGBへ変換する関数とRGBから変換する関数の2つが用意されています。

なお、値の範囲については、YIQモデルではYの値が0〜1の範囲に収まる一方、IとQの値は正または負の値を取ることがあります。RGB・HLS・HSVモデルでは、すべての値が0〜1の範囲内となります。

主な変換関数一覧

rgb_to_yiq()RGB を YIQ に変換する
yiq_to_rgb()YIQ を RGB に変換する
rgb_to_hls()RGB を HLS に変換する
hls_to_rgb()HLS を RGB に変換する
rgb_to_hsv()RGB を HSV に変換する
hsv_to_rgb()HSV を RGB に変換する

使用例

ここでは、実際にcolorsysモジュールを読み込み、ピンク系の色(R=1.0、G=0.753、B=0.8)をHLS・HSV・YIQの各形式に変換してみます。

>>> import colorsys
>>> r,g,b = 1, 0.753, 0.80
>>> colorsys.rgb_to_hls(r,g,b)
(0.9682860998650472, 0.8765000000000001, 1.0)
>>> colorsys.rgb_to_hsv(r,g,b)
(0.9682860998650472, 0.247, 1)
>>> colorsys.rgb_to_yiq(r,g,b)
(0.83227, 0.1328331, 0.06727970000000007)

実行結果を見ると、HLSとHSVの戻り値の最初の要素(色相)がどちらも約0.968で一致していることがわかります。これは両モデルとも色相を同じ基準で表現しているためです。一方、YIQでは輝度成分のYが約0.83となっており、元の色が比較的明るいことを示しています。このようにcolorsysを活用すれば、用途に応じたカラーシステムへの変換を簡単に行うことができます。

  1. 【Python】Tkinterで作るカラーゲーム – 30秒で文字の色を当てるGUIゲーム開発

    GUIアプリケーションの開発において、Pythonの標準ライブラリ「Tkinter」は非常に人気が高く、初心者でも扱いやすいツールです。追加のインストール作業なしに使えるため、Tkinterを活用すればシンプルなGUIゲームでも手軽に開発できます。 この記事では、Tkinterを使った「カラーゲーム」の作り方を紹介します。このゲームでは、画面に表示される単語の文字色をプレイヤーが入力し、正解するたびにスコアが1点ずつ加算されます。制限時間は30秒で、使用される色は赤(Red)、青(Blue)、緑(Green)、ピンク(Pink)、黒(Black)、黄(Yellow)、オレンジ(Orange)、

  2. PythonでのCX_Freezeの使い方:スクリプトを実行ファイル(EXE)に変換する方法

    はじめに 何か面白いものを作りたいという欲求は人間の本能であり、完成したものは誰かに共有したくなるものです。Pythonでもその願いを叶えられます。ただし、作成したPythonスクリプトをそのまま共有するには、相手のマシンにも同じバージョンのPythonと、プログラムで使用しているすべてのモジュールがインストールされている必要があります。 そこで役立つのがCX_Freezeです。このツールを使えば、Pythonがインストールされていない環境でも動作するスタンドアロンの実行ファイル(.exe)を作成できます。 CX_Freezeのインストール まず、コマンドプロンプトで以下のコマンドを実行し、c