-1

上の行に赤、緑、ブエ、下の行にシアンマゼンタ、黄色を含む画像(510 * 510)をmatlabですべて等しい部分で作成する方法。

4

2 に答える 2

2

あなたの質問は少し漠然としていますが、私はあなたが求めていることを知っていると思います. HSV 画像の色相チャネルは、RGB カラー モデルのポイントの円筒座標表現であるため、通常は 0 から 360 度の範囲と考えられます。ただし、色相チャネルの値は、画像の 0 から 1 の範囲である可能性があります。これは、HSV マップを取得するために使用したものである場合、関数RGB2HSVからの出力として得られるものです。

したがって、色相を 120 度シフトするには、範囲を 1/3 シフトする必要があります。つまり、120 度の正のシフトを想定して、0 から 1/3 の範囲の値を 1/3 から 2/3 の範囲に変更する必要があります。次のようにREM関数を使用してこれを実現できます。

H = rem(H + 1/3, 1);

120 度の負のシフトの場合、次のように 240 度の同等の正のシフトを適用できます。

H = rem(H + 2/3, 1);
于 2012-12-27T16:34:59.483 に答える
2

@gnoviceの答えの貧乏人のバージョンについては、@JasonDによって提案されているように、R、G、およびBチャンネルを単純に交換することをお勧めします

n x m x 3 の RGB イメージが array に格納されているとしimgます。次に、次のようにチャンネルをシフトします

shiftedImg = img(:,:,[2 3 1]);

また

shiftedImg = img(:,:,[3 1 2]);
于 2012-12-27T17:23:11.140 に答える