0
e.g. this oneのチュートリアルでは、カンマで区切ったリストでopencv Matを初期化する方法が示されています。しかし、私が多次元マットでそれをしようとすると、私は奇妙なことが起こります。多面体cv :: Matのカンマ区切りの初期化子
#include "opencv2/core/core.hpp"
#include <iostream>
int main() {
cv::Mat vect = (cv::Mat_<double>(2, 2, CV_8UC3) << 1,2,3,4,5,6,7,8,9,10,11,12);
std::cout << "vect = " << std::endl << " " << cv::format(vect,"python") << std::endl;
return 12345;
}
出力:
vect =
[[1, 2],
[3, 4]]
一つが明示的に多次元マットを初期化することはできますか?
EDIT:また、他の方法で初期化するのに問題があります。
int main() {
int data[2][2][3] = {
{
{1,2,3},
{4,5,6}
},
{
{7,8,9},
{10,11,12}
}
};
cv::Mat vect = cv::Mat(2, 2, CV_8UC3, data);
std::cout << "vect = " << std::endl << " " << cv::format(vect,"python") << std::endl;
return 54321;
}
出力:
vect =
[[[1, 0, 0], [0, 2, 0]],
[[0, 0, 3], [0, 0, 0]]]
だから、[0][0][1]
での私の入力配列の要素は、マットで[0][1][1]
で終わります?ここでは何が起こっているのですか...