0

SVG コンポジション標準 (2009 年、https://www.w3.org/TR/2009/WD-SVGCompositing-20090430/ ) から 24 のメソッドのほとんどを Matlab に移植しましたが、4 つのメソッド (色覆い焼きなど) が中継されます。 if ステートメント内で画像を比較する (例: if Sca == Sa && Dca == 0 ...) が、Matlab はこれを非スカラー演算子と見なします。

Sc、Dc は RGB イメージです。Sa、Da はアルファ チャネルを表すグレー マスクです。Dca、Sca は乗算済みのイメージです。Dca = Dc .* Da; Sca = Sc .* Sa;

if strcmp(compo_meth, 'color-dodge') == 1; 
    if Sca == Sa && Dca == 0
        Dca = (1 - Da) .* Sca;
    elseif Sca == Sa
        Dca = Sa .* Da + (1 - Da) .* Sca + (1 - Sa) .* Dca;
    elseif Sca < Sa
        Dca = Sa .* Da .* min(1, Dca/Da .* Sa/(Sa - Sca));
    end
    Da  = Sa + Da - Sa .* Da;
end

Sca == Sa && Dca == 0 の場合のエラー

|| へのオペランド および && 演算子は、論理スカラー値に変換可能でなければなりません

4

1 に答える 1