2012-04-18 9 views
-2

どのようにイメージをセルに変換できますか? mat2cellの変換では、このいずれかを実行している間、私はエラーを取得しています:イメージをセルに変換する

close all; 
I=imread('D:\prj2.jpg'); 
Imshow(I); 
C=mat2cell(I,[130 97],[130 97]); 
+1

あなたはどのようなエラーを取得していますか?私のサイズは何ですか? (実行するために 'size(I)'を実行してください) –

+1

??? 962で==> mat2cellを使用しているエラー 入力ベクトル引数の数2が、入力行列の次元数3と一致しません。 4 = 0> prjでエラーが発生しました。C = mat2cell(I、[130 97] 、[130 97])。 – user1340253

答えて

1

ドキュメントからmat2cellのために:

mat2cell Break matrix up into a cell array of matrices. 
    C = mat2cell(X,M,N) breaks up the 2-D array X into a cell array... 

これは、現在の関数のmat2cellを使用している方法です。ただし、エラーメッセージから、Iという行列は2次元行列ではないようです。コマンド行にndims(I)と入力すると、配列の次元数がわかります。

あなたのエラーメッセージから

、あなたのIは、3次元(画像の三次元各カラーチャンネルのためである)を持っていることがわかります。したがって、別様にmat2cellを使用する必要があります。コマンドプロンプトに「help mat2cell」と入力し、多次元配列にはmat2cellを使用してください。

また、あなたが最初にあなたの画像とは別に各カラーチャンネルを抽出でき、個別に各カラーチャンネルでmat2cellを実行します。

red_channel = I(:, :, 1); 
green_channel = I(:, :, 2); 
blue_channel = I(:, :, 3); 
+0

rgbをフレームに変換する方法M(1)= im2frame(red_channel、map); M(2)= im2frame(green_channel、map); M(3)= im2frame(blue_channel、map); ???未定義関数または変数 'map'。 ==> prj = 7のエラー M(1)= im2frame(red_channel、map); – user1340253

+0

いずれにしても、画像をフレームに変換し、その後乱気流シミュレーションを適用してフレームをビデオに変換するためのMATLABコードの書き込みに役立ちます。 – user1340253

+0

素晴らしいコメント。たぶん、これらは別々の質問として最もよいでしょう、ここでそれらに答えることは非常に難しいです。 –

関連する問題