"Matlabでは行列と画像の乗算

I

IndiJones

Guest
私は、24ビットRGB画像(bmp)ファイルが1024X1280X3ているピクセルがあり
、 です
uint8型(MathWorks社のMATLABは
、 イメージが'imreadを使用しています)が表¥示されます。わたし
3x3の行列を見るために増殖するようになる方法の画像
に変更します。私は
、 次のコマンドを使用してください:

画像2 =表¥*イメージ;

私はこのメッセージを得る:

"???エラー:=="mtimeを
整数は
、 同じクラス、または整数を組み合わせることができます
スカラー倍になります。"

それから私はイメージをダブルを使用して変換:

DoubleImage = imdouble(イメージ);

そして再び
、 乗算を行うことを試みた:

画像2 = Matrix1 * DoubleImage;

私はこのエラーを得たこの時間:

"???エラー:=="mtimeを
入力引数は2次元である必要があります。"

可能¥性が誰でもどうやって掛け算をしようと思って教えてください
。して表¥示するための出力イメージを形成します。

事前に感謝します!

 
私は
、 さらに問題を明確にする必要があると思う。RGBの各画素
イメージの平面Matrix1乗算する必要があります。インスタンスについては、
R1は、G1および地下最初の3つの面の最初のピクセルになります
Matrix1し、その後は、R2 G2の&乗算B2、およびように乗算されます。
だから、3x3の行列
、 別の3X1マトリックスとしてかける必要があります
次のとおり:

新しいイメージの最初の(ピクセル単位)のXYZと言う

[X1のY1 Z1] = [m11をm12 M13の; m21 m22 m23、M31のm32をm33] * [R1のG1の地下];



[EU分類Ynの亜鉛] = [m11をm12 M13の; m21 m22 m23、M31のm32をm33] * [Rnのギニア億円];

最後に
、 出力イメージのXYZのピクセル値をX1の、..、EU分類があります
は、X平面、Y1、..、Ynのは、Y平面とZ1、..、亜鉛は、Z平面のための
と最終的なイメージを示しています。

 
もし私が正しく理解し、フィルタを適用する元の画像ください
3x3のマスク?もしそうなら 、)= conv2(マスク、your_pic :),:,メートル))new_pic(m
を使用
ここで、R、GおよびBのようメートル= 1,2,3

各2次元画像(のR、GおよびB)を保存し、3次元配列に結合します。

頑張って、
P.

 

Welcome to EDABoard.com

Sponsor

Back
Top