グレースケールのソースを表示
←
グレースケール
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{Color depth}} '''グレースケール'''({{Lang-en-short|gray scale}} または {{lang|en|grayscale}})とは、[[コンピュータ]]上の画像および[[写真]]での[[色]]の表現方法の一種。[[デジタル画像]]の中でも、[[ピクセル]]の[[標本化|標本値]]に[[光度 (光学)|光度]]以外の情報が含まれていない画像のことである。グレースケールでは、[[二値画像]]と異なり、[[画像]]を[[光]]が最も強い[[白]]から最も弱い[[黒]]まで間の[[灰色]]の{{仮リンク|灰色の色合い|en|Shades of gray|label=明暗}}も含めて表現する<ref>{{cite book | title = Stephen Johnson on Digital Photography | author = Stephen Johnson | publisher = [[オライリーメディア]] | year = 2006 | isbn = 0-596-52370-X | url = https://books.google.co.jp/books?id=0UVRXzF91gcC&pg=PA17&dq=grayscale+black-and-white-continuous-tone&ei=XlwqSdGVOILmkwTalPiIDw&redir_esc=y&hl=ja }}</ref>。 グレースケールの画像は観測した光が[[紫外線]]、[[可視光線]]、[[赤外線]]だった時、各ピクセルごとの[[電磁スペクトル]]の帯の光の強さを測定した結果としても得られる。またそれらは特定の[[周波数]]の光のみが捕捉された場合、単色であることが多い。また、グレースケールはフルカラーの画像から作り出すこともできる。詳細は[[#カラーをグレースケールに変換する]]の節を参照。 == 数値表現 == <!-- 縦にセルを並べると、モバイル表示環境では無駄にスペースを浪費してしまうので、横に並べる。 --> {| style="border-width:1px 1px 1px 1px; border-color:#808080 #808080 #808080 #808080; border-style:solid; border-collapse:collapse; width:100%" |+ style="font-weight:bold; font-size:smaller;"|白を255、黒を0とし、17階調ごとの離散的な16色を並べた例 <!-- モバイル環境でも見出しのテキスト幅によらず均等割り付けする適切な方法が見つかるまで、ひとまずコメントアウト。 --> <!-- !style="width:6.25%;font-size:smaller;"|255 !style="width:6.25%;font-size:smaller;"|238 !style="width:6.25%;font-size:smaller;"|221 !style="width:6.25%;font-size:smaller;"|204 !style="width:6.25%;font-size:smaller;"|187 !style="width:6.25%;font-size:smaller;"|170 !style="width:6.25%;font-size:smaller;"|153 !style="width:6.25%;font-size:smaller;"|136 !style="width:6.25%;font-size:smaller;"|119 !style="width:6.25%;font-size:smaller;"|102 !style="width:6.25%;font-size:smaller;"|85 !style="width:6.25%;font-size:smaller;"|68 !style="width:6.25%;font-size:smaller;"|51 !style="width:6.25%;font-size:smaller;"|34 !style="width:6.25%;font-size:smaller;"|17 !style="width:6.25%;font-size:smaller;"|0 --> |- | style="width:6.25%;background-color:#FFFFFF;"| | style="width:6.25%;background-color:#EEEEEE;"| | style="width:6.25%;background-color:#DDDDDD;"| | style="width:6.25%;background-color:#CCCCCC;"| | style="width:6.25%;background-color:#BBBBBB;"| | style="width:6.25%;background-color:#AAAAAA;"| | style="width:6.25%;background-color:#999999;"| | style="width:6.25%;background-color:#888888;"| | style="width:6.25%;background-color:#777777;"| | style="width:6.25%;background-color:#666666;"| | style="width:6.25%;background-color:#555555;"| | style="width:6.25%;background-color:#444444;"| | style="width:6.25%;background-color:#333333;"| | style="width:6.25%;background-color:#222222;"| | style="width:6.25%;background-color:#111111;"| | style="width:6.25%;background-color:#000000;"| |} [[File:Grayscale 8bits palette sample image.png|thumb|right|グレースケールの画像の例]] ピクセルごとの光の強さの表現には範囲がある。この範囲は抽象的には、0(光が全くない状態:黒)から1(すべての光が最大限出ている状態:白)までの値を取りうる。この表記法は学術論文等で使われているが、この表記は[[カラリメトリー|色度学]]的に白や黒がどんな色であるかは定義していない。 他の記述法としては、光の強さを[[パーセント|パーセンテージ]]で表す方法がある。この場合ではスケールは0%から100%までとなる。これは光の強さをより直感的に表現することができるが、もし値が整数値しか用いられなかった場合、表せる光の強さは101種類だけとなり、幅広い[[グラデーション]]の色を表すには不十分である。またパーセント表記法は [[網点|ハーフトーン]][[印刷]]でどのくらいのインクが使われたかを示すのにも使われるが、そうなるとスケールの上下が逆転し、0%が紙の色の白(何も印刷されていない)、100%が真っ黒を表すことになる。 コンピュータの中では、グレースケールは[[有理数]]を用いて計算されるが、画像のピクセルは[[量子化]]された[[バイナリ]]の形で保存される。初期のグレースケールモニターの一部は、[[4ビット]]、つまり16段階しか表すことができなかった。2000年代以降はフルカラーモニターが一般的となり、[[Portable Network Graphics|PNG]]のような[[可逆圧縮]]形式が広くサポートされるようになり、またメインメモリ([[主記憶装置]])やストレージ([[補助記憶装置]])の容量も飛躍的に向上したことから、グレースケールの画像はピクセルあたり[[8ビット]]、RGBカラーの画像はピクセルあたり[[24ビット]]で保存されるのが普通になり、256段階の光の強さで表示、記録、印刷できるようになっている{{efn|写真でよく使われる[[JPEG]]は[[非可逆圧縮]]かつ[[YCbCr]]形式であるが、一般的に色差信号CbとCrは間引かれ、縦横2×2の4ピクセルごとに保存される4:2:0形式が使われる。[[クロマ・サブサンプリング]]の記事も参照のこと。YCbCrやYUVは通例ピクセルあたり24ビットのRGBに変換して表示されるが、ソフトウェア([[CPU]])で変換処理を実行すると負荷が高いため、[[Direct2D]]のように入力データはネイティブYCbCrとして扱い、変換処理をハードウェア([[Graphics Processing Unit|GPU]])にオフロードするAPIもある<ref>[https://learn.microsoft.com/en-us/windows/win32/wic/jpeg-ycbcr-support JPEG YCbCr Support - Win32 apps | Microsoft Learn]</ref>。}}。しかしその256段階は[[ガンマ値|非線形のスケール]]になっている。この8ビットという値は、[[バンディング (色)|バンディング]]{{efn|バンディングはデジタル画像や動画における[[デジタルアーティファクト]]の一種であり、階調数が不足している場合にグラデーションがなめらかにならずピクセル境界が見えてしまう現象のことである。多くの画像処理ソフトウェアで利用可能なアート効果の{{仮リンク|ポスタリゼーション|en|Posterization}}(英語の正しい発音に近いカナ表記は「ポスタライゼーション」だが、日本語では「ポスタリゼーション」と表記されることが多い<ref>[https://eow.alc.co.jp/search?q=posterization posterizationの意味・使い方・読み方|英辞郎 on the WEB]</ref>)と似ているが、バンディングは[[色の量子化]]や[[非可逆圧縮]]の過程で発生するデジタルアーティファクトであり、画像や動画の劣化・品質低下としてみなされる、望ましくない現象である。バンディングは[[錯視]]現象の一種である[[マッハバンド]]と混同されることが多い<ref>[http://compojigoku.blog.fc2.com/blog-entry-90.html 「バンディング」って何?「マッハバンド」は誤用?調べてみました! - コンポジゴク]</ref>。}}を回避できるぎりぎりの値だが、8ビット([[オクテット (コンピュータ)|オクテット]])を1[[バイト (情報)|バイト]]とするコンピュータが主流となっているため、[[プログラミング (コンピュータ)|プログラミング]]には都合が良い。 しかし、専用ソフトウェアでの後処理を前提としたプロフェッショナル向けの[[デジタルカメラ]]による撮影や[[イメージスキャナ]]による取り込み、[[医用画像処理]]や[[リモートセンシング]]などの高度に技術的な利用に対しては、8ビットでは階調数が足りないケースがある。高精細・高画質な用途では、[[CCDイメージセンサ]]や[[CMOSイメージセンサ]]といった撮像素子自体は8ビットを超える階調数をハードウェアレベルでサポートしており、そのような[[センサ]]の精度を十分に活かすためにチャンネルあたり10ビットや[[12ビット]]の画像形式が用いられ、コンピュータ内で発生する{{仮リンク|近似誤差|en|Round-off error}}を低減させるようにしている。この場合、コンピュータが処理しやすい[[16ビット]]が用いられることも多い。[[Tagged Image File Format|TIFF]]や[[Portable Network Graphics|PNG]]などの[[画像ファイルフォーマット]]([[:en:Image file formats|image file formats]])は仕様策定当初からチャンネルあたり16ビットの形式をサポートしている。ただし、ディスプレイへの最終的な画像表示を担当する[[ビデオカード]]([[Graphics Processing Unit|GPU]])は、コンシューマー用途ではチャンネルあたり8ビットまでの出力しかサポートしていないため、[[ウェブブラウザ]]や一般的な[[画像ビューア]]のような多くの[[アプリケーションソフトウェア]]では8ビットを超える階調の画像を8ビットに変換して表示している。チャンネルあたり8ビットを超える画像を正確に表示するには、対応するソフトウェアのほかに対応するディスプレイやビデオカードも必要となる。 ピクセルの[[色深度]]がいくらであっても、値が0の時は黒で、最大値(8ビットでは255、16ビットでは65,535)では白であることは同じである。ただし、[[インデックスカラー]]形式の場合、カラーパレットは自由に設定することができるので、0番目の色を白、255番目の色を黒とする画像を作ることもできる。 ダイナミックレンジの画像処理用途ではチャンネルあたり16ビット[[半精度浮動小数点数|半精度]]や32ビット[[単精度浮動小数点数|単精度]]の[[浮動小数点数]]形式が使われることも多い。[[ハイダイナミックレンジイメージ]]も参照のこと。 == カラーをグレースケールに変換する == {{仮リンク|カラー画像|en|Color image}}をグレースケールに変換する方法はいくつかある。色の{{仮リンク|チャンネル (デジタル画像)|en|Channel (digital image)|label=チャンネル}}の違いによって白黒画像でもカメラの[[レンズフィルター]]に異なる色が生まれる。 === 輝度保存変換 === 一般的な方法の一つに、{{仮リンク|光度学|en|Photometry (optics)}}や色度学の理論を用いて、グレースケールの画像の[[輝度]]をもとのカラー画像の輝度に合わせるという方法がある<ref>Poynton, Charles A. "Rehabilitation of gamma." Photonics West'98 Electronic Imaging. International Society for Optics and Photonics, 1998. [http://proceedings.spiedigitallibrary.org/proceeding.aspx?articleid=936787 online]</ref><ref>Charles Poynton, [http://poynton.com/notes/video/Constant_luminance.html Constant Luminance]</ref>。この方法は、双方の画像の絶対輝度が等しく、[[国際単位系]]の[[カンデラ毎平方メートル]]で測定することができる。また、この画像には[[白色点]]が存在する。さらに、輝度を合わせることで、[[CIE 1931 色空間]]での輝度Yによって決まる、[[国際照明委員会|CIE]]1976年Lab色空間の[[Lab色空間|L*]]のような知覚的な[[明度]]([[:en:Lightness|lightness]])の測定もできるようになる。 [[RGB]]に基づく[[色空間]]の色を光度だけで表されるグレースケールに変換するためには、線形RGB空間において{{仮リンク|重み関数|en|Weight function|label=重み合計}}を計算しなければならない。それはつまり、[[ガンマ値|ガンマ圧縮関数]]は最初にガンマ拡張によって取り除かれるということである<ref>Bruce Lindbloom, [http://www.brucelindbloom.com/index.html?WorkingSpaceInfo.html RGB Working Space Information] ([https://web.archive.org/web/20131002132220/http://www.brucelindbloom.com/index.html?WorkingSpaceInfo.html retrieved 2013-10-02])</ref>。 [[sRGB]]([[:en:sRGB|英語版]])色空間では、ガンマ拡張は次のように定義される。 :<math>C_\mathrm{linear}= \begin{cases}\frac{C_\mathrm{sRGB}}{12.92}, & C_\mathrm{sRGB}\le0.04045\\ \left(\frac{C_\mathrm{sRGB}+0.055}{1.055}\right)^{2.4}, & C_\mathrm{sRGB}>0.04045 \end{cases} </math> ただし、C<sub>sRGB</sub>はガンマ圧縮されたsRGBの[[原色]](R<sub>sRGB</sub>、G<sub>sRGB</sub>、B<sub>sRGB</sub>)のうちのいずれかの光の強さの値で、それぞれ0以上1以下である。また、C<sub>linear</sub>は、それに線形的に対応するRGBの光の強さの値である。(こちらも0以上1以下)したがって、光度は3つの線形的な光の強さの値の重み合計として計算される。sRGBの色空間は、CIE1931色空間では線形光度Yで表され、以下のように与えられる。 :<math>Y = 0.2126 R + 0.7152 G + 0.0722 B</math>.<ref>Michael Stokes, Matthew Anderson, Srinivasan Chandrasekar, and Ricardo Motta, "A Standard Default Color Space for the Internet - sRGB", [https://www.w3.org/Graphics/Color/sRGB online]Part 2.の終わりの[[行列]]を参照</ref> 係数は、人間の[[三色型色覚]]における各色の認識の強さを測定したものを表しており、原色ごとに異なる値である。特に、人間の視覚が最も敏感に反応するのは[[緑]]で、最も反応が鈍いのは[[青]]である。グレースケールの強さを線形のRGBに変換する際、3つの原色の光の強さは全て同じ値(計算によって導かれた線形光度Y)に設定されている。(この時、(R,G,B)=(Y,Y,Y)となる。)線形光度は通常ガンマ圧縮して非線形表現に戻さなければならない。しかしsRGBでは、3原色の強さの値が全て、上に示したガンマ拡張の逆操作であるガンマ圧縮によって求められるY<sub>sRGB</sub>に設定されている。 :<math>Y_\mathrm{sRGB}=\begin{cases} 12.92\ Y, & Y \le 0.0031308\\ 1.055\ Y^{1/2.4}-0.055, & Y > 0.0031308. \end{cases} </math> 実際には、3原色の強さの割合が全て同じであるため、値をsRGBおよび単一チャンネル表現に対応した[[画像ファイルフォーマット|画像フォーマット]]に一度保存するだけでよい。sRGBの画像を認識できる[[ウェブブラウザ]]やその他の[[ソフトウェア]]は、sRGBを用いている時には、通常3原色が全て同じ値である場合のカラー画像とグレースケールの画像で全く同じ[[レンダリング (コンピュータ)|処理]]が行われる。 === 映像システムにおけるluma符号化 === {{See also|ルーマ}} [[PAL]]、[[SECAM]]、[[NTSC]]などの標準的な[[カラーテレビ]]や映像システムで用いられる[[YUV]]やそれに似た色空間における画像では、非線形[[ルーマ|luma]]要素(Y’)がガンマ圧縮された重み合計としての原色の強さから直接計算される。重み合計は、色度法においてグレースケールの計算で使われるようなガンマ値の拡大や圧縮をせずに直接求められる。PALやNTSCで用いられるYUVモデルや[[YIQ]]モデルでは、{{仮リンク|Rec.601|en|Rec. 601}}のluma(Y')を次のように計算する。 :<math>Y' = 0.299 R' + 0.587 G' + 0.114 B'</math> ここで、文字に[[プライム]]をつけたのは、先述のガンマ圧縮された線形のRGBおよびYと区別するためである。[[ATSC]]によって開発された[[高精細度テレビジョン放送|HDTV]]に用いられる[[ITU-R]][[Rec. 709]]では異なる係数が用いられており、lumaを次のように計算する。 :<math>Y' = 0.2126 R' + 0.7152 G' + 0.0722 B'</math>. この[[係数]]は先のsRGB法での係数と同じだが、ガンマ圧縮値がそのまま式に代入されるため、色彩の効果はsRGBとは異なる。 普通はこれらの色空間は画像表示のためのレンダリングの前にR’G’B’に戻される。精度が十分高ければ、画像を正確にレンダリングできる。 しかし、luma要素自体が画像のグレースケール表現の代わりとなる場合、元の画像の光度は保存されない。2色は同じluma(Y')をとることができるが、CIE線形光度Yが異なる(そのため非線形光度Y<sub>sRGB</sub>も異なる)ため、見る人には元のカラー画像より明るいか、暗くなって見える。同様に、同じ光度Yを持つ2つの色(この時Y<sub>sRGB</sub>も等しい)はY’の定義より異なるlumaを持つことになる<ref>Charles Poynton、 [http://poynton.com/PDFs/Mag_of_nonconst_luminance.pdf The magnitude of nonconstant luminance errors] in Charles Poynton,、A Technical Introduction to Digital Video、[[ニューヨーク]]: [[ジョン・ワイリー・アンド・サンズ]]、 1996年</ref>。 == 多チャンネルのカラー画像の単一チャンネル版としてのグレースケール == カラー画像は固定されたいくつかの色チャンネルからなることが多い。それぞれのチャンネルはチャンネルの光の強さの値を示している。例えば、RGB画像は赤、青、緑の3つの独立した[[原色]]のチャンネルからなる。また[[CMYK]]画像は[[シアン (色)|シアン]]、[[マゼンタ]]、[[黄色|イエロー]]、[[黒|ブラック]]の[[インク]]を合わせて{{仮リンク|カラー印刷|en|Color printing|label=生成}}される。 以下にRGBのフルカラーの画像をそれぞれの色チャンネルに分けた画像の例を示す。左の列は原色の単独のチャンネル、右の列はそれらをグレースケールで表したものである。 [[File:Beyoglu 4671 tricolor.png|thumb|400px|center|RGB画像の色の構成とそれらのグレースケール]] これは可逆的な変換である。別々のグレースケールチャンネルからフルカラーの画像を作ることもできる。オフセットを用いてチャンネルを分断し、回転などの操作を加えることで、元の画像を正確に復元するのではなく画像に新たな効果をつけることができる。 == 脚注 == {{脚注ヘルプ}} === 注釈 === {{Notelist}} === 出典 === {{Reflist}} <!-- == 参考文献 == {{節stub}} --> == 関連項目 == {{Commonscat|Grayscale}} * [[無彩色]] * [[モノクローム]] * [[灰色]] * [[擬色]] * [[セピア]] * [[青写真]] * [[数理形態学]] * [[メゾチント]] * [[色覚異常]]: 全く色が見分けられない場合、その人の目に映る光景はグレースケールのみとなる。 * [[ゾーンシステム]] <!-- == 外部リンク == {{節stub}} --> {{Color topics}} {{DEFAULTSORT:くれすける}} [[Category:色深度]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Color depth
(
ソースを閲覧
)
テンプレート:Color topics
(
ソースを閲覧
)
テンプレート:Commonscat
(
ソースを閲覧
)
テンプレート:Efn
(
ソースを閲覧
)
テンプレート:Lang
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Notelist
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:See also
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
テンプレート:脚注ヘルプ
(
ソースを閲覧
)
グレースケール
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報