Nig*_*Fox 3 c opencv sparse-matrix
我想在OpenCV中创建一个稀疏矩阵.
我该怎么做这个矩阵的基本操作,如:
放置或访问矩阵元素中的数据.
干杯
使用C++接口可能更合适.请注意,文档[1]中的示例代码缺少模运算,因此失败.
const int dims = 2;
int size[] = {3, 20}; // rows and columns if in two dimensions
SparseMat sparse_mat(dims, size, CV_32F);
for(int i = 0; i < 1000; i++) {
// create a random index in dims dimensions
int idx[dims];
for(int k = 0; k < dims; k++)
idx[k] = rand() % size[k];
sparse_mat.ref<float>(idx) += 1.f;
}
cout << "bottom right element @ (2,19) = " << sparse_mat.ref<float>(2,19) << "\n";
Mat dense;
sparse_mat.convertTo(dense, CV_32F);
cout << dense;
Run Code Online (Sandbox Code Playgroud)
给出以下输出
bottom right element @ (2,19) = 19
[9, 23, 13, 26, 18, 13, 18, 15, 13, 17, 13, 18, 19, 6, 20, 20, 12, 15, 15, 15;
17, 17, 14, 16, 12, 14, 17, 15, 15, 18, 24, 18, 13, 22, 18, 11, 18, 22, 17, 15;
19, 16, 14, 10, 18, 19, 10, 17, 18, 15, 24, 22, 18, 18, 18, 23, 21, 16, 14, 19]
Run Code Online (Sandbox Code Playgroud)
[1] OpenCV参考手册.版本2.4.3.2012年,p.46.