7

ホームオートメーションシステムで照明管理用のインターフェースを構築しています。さまざまなプロバイダーの標準のオン/オフと調光可能なライトをほとんど問題なく制御できましたが、RGB ライトに関連する問題で立ち往生しています。

私が現在使用しているライトは RGBW LED ストリップです。具体的には、低コストの RGBW ライトを使用しています。ライトは 4 つの LED で構成され、すべての LED を個別に制御できます。

より明確にするために、現在選択されている色を取得してUIに表示し、ユーザーがライトの新しい色を指定できるようにするC#コードに取り組んでいます。色を設定して取得するには、Web サービス経由でコマンドを送受信できるコマンド プロバイダーを使用する必要があります。

プロバイダーは RGBW カラーで動作します。赤、緑、青、白の 4 つのコンポーネントが使用されます。インターフェイスで現在の光の色を表すために、サービスから返された RGBW 色をより標準的な RGB/HSB スキームに変換したいと考えています。

Web を検索すると、私が見つけた唯一の色変換のリファレンス (私の理解に基づくと、重大なバグがあるに違いない rgb から rgbw への変換の C++ サンプルを除く) は、HSI から RGBW への変換を示すこの記事です。必要なものの逆:ここにリンク

この変換をどのように達成できるかについての洞察(またはそれが不可能な理由の簡単な説明)を探しています。私が知る限り、RGB から RGBW への変換は任意です。単一の RGB 値は複数の RGBW 値として表すことができますが、反対の変換は一義的でなければなりません。また、私は c# を使用していますが、他の言語のアルゴリズムも自由に参照してください。言語は問題ではありません。問題は、色変換を行うための数学がわからないことです。

4

4 に答える 4