C++ 获取二维cv::Mat的非零元素值

C++ 获取二维cv::Mat的非零元素值,c++,opencv,C++,Opencv,我想得到二维cv::Mat的非零元素的值,并将结果放在cv::Mat上。我怎么能做到?我使用以下代码获取非零元素的索引: cv::vector<cv::Vec2i> nonzero ; cv::findNonZero(mask,nonzero); cv::向量非零; cv::findNonZero(掩码,非零); 使用。它允许您指定一个遮罩,其中零表示要忽略的像素,并且将包括任何非零像素。你甚至不需要找到像素的位置 Mat dst; src.copyTo(dst, src); 其

我想得到二维cv::Mat的非零元素的值,并将结果放在cv::Mat上。我怎么能做到?我使用以下代码获取非零元素的索引:

cv::vector<cv::Vec2i> nonzero ;
cv::findNonZero(mask,nonzero);
cv::向量非零;
cv::findNonZero(掩码,非零);
使用。它允许您指定一个遮罩,其中零表示要忽略的像素,并且将包括任何非零像素。你甚至不需要找到像素的位置

Mat dst;
src.copyTo(dst, src);

其中,
src
有您想要的值,零在您想要忽略它的地方,而
dst
是您放置非零值的地方。

我在下面的链接中找到了解决方案:


我编辑了我的代码:mask=map>=threshold;cv::Mat非零;map.copyTo(非零,掩码);但非零mat大小等于map。我想要一个只包含非零元素的矩阵你想要一个包含所有值的矩阵还是向量?因为矩阵的形状是什么?您实际计划如何处理这些值?