19

ピクセルのRGB値を単一のモノクロ値に変換するにはどうすればよいですか?

4

7 に答える 7

21

ColorFAQで1つの可能な解決策を見つけました。輝度成分Y(CIE XYZシステムから)、1つのチャネルの色として人間が最も知覚するものをキャプチャします。したがって、これらの係数を使用します。

mono = (0.2125 * color.r) + (0.7154 * color.g) + (0.0721 * color.b);
于 2008-08-18T08:27:43.830 に答える
7

この最近の科学論文では、カラー写真をグレースケールに変換する際の最先端技術を比較しています。これには、単純な輝度式やより複雑な手法が含まれます。

于 2008-08-25T08:19:59.660 に答える
6

このMSDNの記事で(0.299 * color.R + 0.587 * color.G + 0.114 * color.B);

This Wikipedia article uses (0.3* color.R + 0.59 * color.G + 0.11 * color.B);

于 2008-08-18T08:40:50.403 に答える
5

これは、あなたの動機が何であるかによって異なります。任意の画像をグレースケールに変換して見栄えを良くしたいだけの場合は、この質問に対する他の回答の変換で十分です。

カラー写真を白黒に変換する場合、プロセスは非常に複雑で主観的なものになる可能性があり、各画像に特定の微調整が必​​要になります。何が関係している可能性があるかについては、Adobe for Photoshop のこのチュートリアルをご覧ください。

これをコードで複製することはかなり複雑であり、結果の画像を美的に「完璧」にするには、ユーザーの介入が必要になります (それが何を意味するにせよ!)。

于 2008-08-18T19:38:49.233 に答える
4

また、前述のように、RGB トリプレットからのグレースケール変換 (モノクロ画像がグレースケールである必要はないことに注意してください) は好みによって異なります。

たとえば、赤と緑のコンポーネントを捨てて、代わりに青の値をコピーするだけで、ごまかして青のコンポーネントだけを抽出できます。別の単純で一般的に問題のない解決策は、ピクセルの RGB トリプレットの平均を取り、その値を 3 つのコンポーネントすべてで使用することです。

Photoshop だけでも、プロフェッショナルで決して安価ではないグレースケール/モノクロ変換プラグインの市場がかなりあるという事実は、変換が単純でも複雑でも好きなようにできることを示しています。

于 2008-08-25T08:30:01.367 に答える
1

RGB ベースの画像をモノクロに変換する背後にあるロジックは、単純な線形変換ではありません。私の意見では、このような問題は「カラー セグメンテーション」手法で対処する方が適切です。k-means クラスタリングによって「カラー セグメンテーション」を実現できます。

MathWorks サイトの参照例を参照してください。

https://www.mathworks.com/examples/image/mw/images-ex71219044-color-based-segmentation-using-k-means-clustering

カラーの原画。

色付きの絵

k-means クラスタリングを使用してモノクロに変換した後 k-means クラスタリングを使用してモノクロに変換した後の画像

これはどのように作動しますか?

画像全体からすべてのピクセル値を収集します。幅 W ピクセル、高さ H ピクセルの画像からは、W *H のカラー値が得られます。ここで、k-means アルゴリズムを使用して 2 つのクラスター (またはビン) を作成し、色を適切な「ビン」に投入します。2 つのクラスターは、黒と白の色合いを表します。

k-means を使用した画像セグメンテーションを示す Youtube ビデオ? https://www.youtube.com/watch?v=yR7k19YBqiw

この方法の課題

k-means クラスタリング アルゴリズムは外れ値の影響を受けやすくなっています。RGB 距離が群集の残りの部分から遠く離れている色のランダムなピクセルがいくつかあると、重心が簡単にゆがみ、予期しない結果が生じる可能性があります。

于 2018-07-10T09:50:23.130 に答える