2

ポイントをopencvマトリックス(cv::Mat)に保存したいのですが、可能ですか? 私はこのコードでそれを試しました:

cv::Mat_<cv::Point> matPoint;
matPoint.at<cv::Point>(0) = cv::Point(2,2);
std::cout << matPoint.at<cv::Point>(0) << std::endl;

実際には正常にコンパイルされましたが、コードを実行すると「浮動小数点例外」が発生しました。上記のコードが間違っていることはわかっていますが、それ以外の方法はわかりません。

どんな助けでも大歓迎です。ありがとうございました

4

2 に答える 2

2

別のバージョン:

cv::Mat_<cv::Point> matPoint;
matPoint.push_back(Point(2,2));
于 2013-05-19T11:24:41.880 に答える
2

これを行う正しい方法は次のとおりです。

// Create 1x1 matrix and initialize all elements with (0,0)
cv::Mat_<cv::Point> matPoint(1, 1, cv::Point(0, 0));

// Access the element with index 0
matPoint(0) = cv::Point(2, 2);

// Alternative syntax for targeting the elements by their two-dimensional index:
std::cout << matPoint(0, 0) << std::endl;

構文も機能する.at<cv::Point>(0)はずですが、あまり便利ではありません。

于 2013-05-19T10:50:31.577 に答える