#include <stdio.h>
#include "opencv2/highgui/highgui.hpp"?
#include "opencv2/imgproc/imgproc.hpp"
using namespace std;
void main()
{
? ? int size[] = { 10,10 };
? ? cv::SparseMat sm(2, size, CV_32F);
? ? for (int i = 0; i < 10; i++)
? ? {
? ? ? ? int idx[2];
? ? ? ? idx[0] = size[0] * rand();
? ? ? ? idx[1] = size[1] * rand();
? ? ? ? //Fill the array
? ? ? ? sm.ref<float>(idx) += 1.0f;
? ? ? ? //Print out the nonzero elements
? ? ? ? //
? ? }
? ? cv::SparseMatConstIterator_<float>it = sm.begin<float>();
? ? cv::SparseMatConstIterator_<float>it_end = sm.end<float>();
? ? for (; it != it_end; ++it)
? ? {
? ? ? ? const cv::SparseMat::Node* node = it.node();
? ? ? ? printf("(%3d,%3d)%f\n", node->idx[0], node->idx[1], *it);
? ? }
? ? return;
}
结果打印: