問題タブ [rgb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
colors - グレースケール値を RGB 表現に変換しますか?
グレースケール値 (0-255) を RGB 値/表現に変換するにはどうすればよいですか? これは、グレースケールのサポートがなく、RGB のみがサポートされているように見える SVG 画像で使用するためのものです...
注: これは RGB -> グレースケールではなく、別の質問で既に回答されています。たとえば、RGB をグレースケール/強度に変換するなど) 。
algorithm - 色生成機能
次のシナリオを考えてみましょう: 白から赤、白から青、白からピンク、白からオレンジなどのコード色を生成できる関数。
カラー コードは RGB 形式で、値は 0 ~ 255 です。
何か案は?そのようなアルゴリズムへの疑似コードまたはリンクを教えてもらえますか?
colors - 特定のPMS値のCMYK値を取得するにはどうすればよいですか?
PMS(Pantone Matching System)の色の値があります。そのPMS値に対応するCMYK(http://en.wikipedia.org/wiki/CMYK )またはRGB値を見つける必要があります。
コンバージョンやカラーチャートを引用しているリンクがあれば役に立ちます。
乾杯
cocoa - Cocoa Touch で RGB を HSV に変換するにはどうすればよいですか?
RGB の代わりに HSV を使用して、ラベルの背景色を設定したいと考えています。これをコードに実装するにはどうすればよいですか?
コード:
c# - ビットマップの平均RGBカラー値を計算する方法
私のC#(3.5)アプリケーションでは、ビットマップの赤、緑、青のチャネルの平均カラー値を取得する必要があります。できれば外部ライブラリを使用せずに。これはできますか?もしそうなら、どのように?前もって感謝します。
もう少し正確にしようとしています。ビットマップの各ピクセルには、特定のRGBカラー値があります。画像内のすべてのピクセルの平均RGB値を取得したいと思います。
cocoa - CocoaOpenGLプログラムで生のYUVフレームを表示する方法
私は、サンプルの生のYUVファイルを取得してCocoaOpenGLプログラムに表示するプログラムを作成するタスクを割り当てられました。
私は自分の仕事のインターンであり、どのように始めればよいのかほとんど、あるいはまったくわかりません。YUVに関するウィキペディアと記事を読んでいますが、生のYUVファイルを開き、データを抽出してRGBに変換し、ビューウィンドウに表示する方法に関する適切なソースコードが見つかりませんでした。
基本的に、タスクの次の側面について支援が必要です-サンプルYUVファイルからYUVデータを抽出する方法-YUVデータをRGB色空間に変換する方法-OpenGLでRGB色空間を表示する方法。(これは時間の経過とともに理解できると思いますが、最初の2つのポイントについては本当に助けが必要です)
使用するクラスを教えてください。または、YUVグラフィック/ビデオディスプレイについて学ぶことができる場所を教えてください。
c# - C# で画像の色空間を読み取って変更する方法
jpg ファイルからビットマップを読み込んでいます。画像が 24bit RGB でない場合は、変換したいのですが。変換はかなり速いはずです。読み込んでいる画像は最大で巨大です (9000*9000 ピクセル、圧縮サイズは 40 ~ 50MB)。これはどのように行うことができますか?
ところで:可能であれば、外部ライブラリを使用したくありません。しかし、最も一般的なイメージング タスクを実行するオープン ソースのユーティリティ クラスをご存じでしたら、ぜひお知らせください。前もって感謝します。
objective-c - YUV を OpenGL で表示する
NV12 形式の未加工の YUV ファイルを表示できません。
選択したフレームを表示できますが、まだ主に白黒で、ピンクと緑の特定の色合いがあります。
ここに私の出力がどのように見えるかがあります
とにかく、これが私のプログラムの仕組みです。(これは cocoa/objective-c で行われますが、構文ではなく、プログラムのアルゴリズムに関する専門家のアドバイスが必要です。)
プログラムの実行前に、YUV ファイルは「test.yuv」という名前のバイナリ ファイルに保存されます。ファイルは NV12 形式です。つまり、Y プランが最初に保存され、次に UV プランがインターレースされます。多くのテストを行ったため、ファイルの抽出に問題はありません。
開始時に、バイナリ/8 バイト/バイト/文字を Y、U、V の float 値に変換するルックアップ テーブルを作成します。
Y平面の場合、これは私のコードです
U プレーン ルックアップ テーブル
そしてVルックアップテーブル
この時点の後、Y および UV プランを抽出し、それらを yBuffer および uvBuffer の 2 つのバッファーに格納します。
この時点で、YUV データを変換して、「frameImage」という RGB バッファ配列に格納しようとしています。
次に、OpenGLで画像を描画しようとしました
基本的に、これはナットシェルの私のプログラムです。基本的に、バイナリ YUV ファイルを読み取り、すべてのデータを char 配列バッファーに格納します。次に、これらの値を対応する YUV float 値に変換します。
ここでエラーが発生する可能性があります。Y ルックアップ テーブルでは Y 平面を [0,1] に標準化し、U 平面では [-0.435,0.436] の間の値を標準化し、V 平面では標準化しました。 [-0.615,0.615] の間です。ウィキペディアによると、これらはYUV値の範囲であるため、これを行いました。
また、YUV から RGB への式は、ウィキペディアと同じ式です。他にもいろいろな計算式を試しましたが、これがフレームの大まかな概観を示す唯一の計算式です。私のプログラムが YUV フレーム データを正しく表示しない理由を推測する人もいるかもしれません。私の標準化技術と関係があると思いますが、私には問題ないようです。
私は多くのテストを行いましたが、ルックアップ テーブルが原因でエラーが発生していることを 100% 確信しています。私の設定式は正しくないと思います。
これを読んでいるすべての人への注意。フレーム データを正しく抽出できなかったため、長い間、フレームが正しく表示されませんでした。
私が最初にプログラミングを始めたとき、たとえば 30 フレームのクリップでは、30 の Y 平面データすべてが最初にデータ ファイルに書き込まれ、次に UV 平面データが続くという印象を受けました。
試行錯誤して分かったのは、YUV データ ファイル、具体的には NV12 の場合、データ ファイルは次のように格納されるということでした。
Y(1) UV(1) Y(2) UV(2) ... ...
@nschmidt
コードをあなたが提案したものに変更しました
これが私が得た結果です
ここにコンソールからの印刷行があります。変換されてframeImage配列に格納されているY、U、V、およびRGB値の値を出力しています
YUV:[0.658824,-0.022227,-0.045824] RGBFinal:[0.606593,0.694201,0.613655]
YUV:[0.643137,-0.022227,-0.045824] RGBFinal:[0.590906,0.678514,0.597969]
YUV:[0.607843,-0.022227,-0.045824] RGBFinal:[0.555612,0.643220,0.562675]
YUV:[0.592157,-0.022227,-0.045824] RGBFinal:[0.539926,0.627534,0.546988]
YUV:[0.643137,0.025647,0.151941] RGBFinal:[0.816324,0.544799,0.695255]
YUV:[0.662745,0.025647,0.151941] RGBFinal:[0.835932,0.564406,0.714863]
YUV:[0.690196,0.025647,0.151941] RGBFinal:[0.863383,0.591857,0.742314]
2009 年 7 月 13 日更新
nschmidt さんからのアドバイスのおかげで、問題は最終的に解決されました。私の YUV ファイルは実際には YUV 4:1:1 形式であることがわかりました。当初、YUV NV12 形式であると言われました。とにかく、私の結果をあなたと共有したいと思います。
ここに出力があります
デコード用の私のコードは次のとおりです
基本的に、生ファイルの抽出には NSData を使用しました。文字配列バッファに格納されます。YUV から RGB への変換には、上記の式を使用し、その後、値を [0:255] にクランプしました。次に、表示用に OpenGL で 2DTexture を使用しました。
したがって、将来 YUV を RGB に変換する場合は、上記の式を使用してください。以前の投稿の YUV から RGB への変換式を使用している場合は、[0:1] の間でクランプされる RGB の値から GL_Float にテクスチャを表示する必要があります。
flash - アルファ + RGB -> ARGB?
as3 に、RGB カラー (例: 0xFF0000) とアルファ値 (例: .5) を A 32 ビット ARGB 値に変換するユーティリティまたは関数はありますか?
そして、ARGB から RGB + アルファへ?
いくつかの説明: bitmapdata はそのコンストラクターで ARGB 値を取ることができますが、スプライトで形状を塗りつぶすには通常 RGB 値を取ります。色が確実に一致するように、前述のユーティリティが必要です。
css - CSSのRGBカラー値に16進数を10進数で使用する正当な理由はありますか?
rgb(255,255,255)
CSS1以降、表記が利用可能になっています。しかし#ffffff
、はるかに人気があるようです。
明らかに、それは少しコンパクトです。16進数は基になるバイトとより密接に関連していることを知っており、これらの値に対して算術演算を実行することには利点があることを理解していますが、これはCSSで行うことではありません。
色の値は、他の場所では16進表記に遭遇することのない設計者(私など)によって作成される傾向があり、使用するアプリで色を指定する主な方法である10進表記に精通しています。特定の16進値がRGBコンポーネントにどのように分解されるかを理解しておらず、Pantoneカラーシステムリファレンス(PMS432など)のように、色に直接関係していないと想定したかなりの数の人に会いました。
では、10進数を使用しない理由は何ですか?