1

SIFT機能のMatlab実装は、http: //www.cs.ubc.ca/~lowe/keypoints/から見つかりました。スタックオーバーフローの助けを借りて。機能を.matファイルに保存したい。特徴は、丸み、色、バイナリ画像の白ピクセル数の数、およびふるい分けの特徴です。sift特徴については、上記のコードで記述子を取得しました{[siftImage、descriptors、locs] = sift(filteredImg)}したがって、私の特徴ベクトルは、FeaturesTest = [roundness、nWhite、color、descriptors、outputs];になります。save('features.mat'、'Features');を使用してこれを.matファイルに保存する場合。エラーが発生します。
エラーはこんな感じです。

??? ==>horzcatCAT引数のディメンションの使用中にエラーが発生しました。336 FeaturesTest = [roundness、nWhite、color、descriptors、outputs]での==>user_interface>extract_featuresのエラー;

私が理解できるように、問題は記述子の特徴ベクトルのサイズだと思います。<14x128ダブル>です。14行はこの機能用ですが、他の行は.matファイルに1行しかありません。この特徴ベクトルを他の特徴とともに.matファイルに保存するにはどうすればよいですか?

返事を待っています。前もって感謝します。

4

1 に答える 1

2

私が理解できることから、あなたは変数roundness、、、、nWhiteを単一のベクトルに入れようとしているように見えます、そしてすべての変数はユニークな次元を持っています。colordescriptorsoutputs

セルまたは構造体を使用してデータを格納する方がよい場合があります。データをセルに保存するには、次のように角かっこを中かっこに変更します。

FeaturesTest = {roundness, nWhite, color, descriptors, outputs};

ただし、.matファイルからデータをプルバックしたときに、どのセルがどのセルであったかを覚えておく必要があります。構造はあなたにとってより役立つかもしれません:

FeaturesTest.roundness = roundness;
FeaturesTest.nWhite = nWhite;
FeaturesTest.color = color;
FeaturesTest.descriptors = descriptors;
FeaturesTest.outputs = outputs;

次に、.matファイルをロードすると、すべてのデータがその構造に含まれ、簡単に参照できます。色変数だけを見る必要がある場合はFeaturesTest.color、と入力してEnterキーを押すと、変数が表示されます。または、ワークスペースウィンドウで構造をダブルクリックして構造を参照することもできます。

または、次のようにsaveコマンドを使用することもできます。

save(filename,roundness, nWhite, color, descriptors, outputs)

お役に立てれば。

于 2011-04-05T22:57:06.963 に答える