是否可以存储cv::指向cv::Mat ?

Is It Possible to Store cv::Point to cv::Mat?

本文关键字:cv Mat 指向 存储 是否      更新时间:2023-10-16

我想将点存储到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;

实际上,它编译成功了,但是当我运行代码时,我得到了一个"浮点异常"。我知道我上面的代码是错误的,但我不知道还有其他方法可以做到。

任何帮助都会很感激。谢谢你

正确的做法是:

// 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)语法也可以工作,但是不太方便。

另一个版本:

cv::Mat_<cv::Point> matPoint;
matPoint.push_back(Point(2,2));