2011-06-23 11 views
3

積み重なった2Dマットから3Dマットを作成し、3Dマットの異なる軸に沿って2Dマットを引き出したいとします。私はこれをすべての行または列のすべてのイメージに手動でアクセスできるように構築することができますが、以下のようにするのがよいでしょうか? 3D OpenCV Matの平面に2D画像を割り当て、別の軸に沿って2D Matsを抽出する方法は?

vector<cv::Mat> images; 

...幅と3Dの深さに沿ってimage_rowsに3Dマットに

} 

vector<cv::Mat> image_rows; 

for (int i = 0; i < images[0].rows(); i++) { 

...プッシュ画像平面を画像

int sz[] = {images[0].rows, images[0].cols, images.size()} 
cv::Mat cube(3, sz, images[0].type()); 
cube = Scalar(0); 

for (int i = 0; i < images.size(); i++) { 

...場所の画像とベクターを移入キューブ行列

} 
+0

'cv :: reshape'は何をしていますか? http://opencv.willowgarage.com/documentation/cpp/basic_structures.html#cv-reshape – karlphillip

+0

3Dマットでは、パラメータが与えられているとリサーブの動作があいまいであるか、またはnチャネル各チャンネルがソース2dマットの1つとなっている画像ですか?私は2.2.0のドキュメントは2Dマットのみと言っていますが、それはあなたが持っているリンクから削除されています(これはおそらく2.3.0です)。 –

答えて

1

I hav eはopencvを使って多くの作業を行いました。そして、私が知っている限り、それを実行する最善の方法です。高い次元のベクトルのマットを作ることができますが、あなたのアクセスはそれほどクリーンではありません。ベクトルにあなたの最高の賭けを固執してください。

関連する問題