Retrieve non-zero elements from a SparseMat while iterating through another
Suppose I have two SparseMat
s:
sparse1 = { 1, 1, 0, 1 }, sparse2 = { 1, 1, 1, 1 }
I iterate through the sparse1
and simultaneously retrieve pairwise elements from sparse2
as follows:
const SparseMat *a = &sparse1;
const SparseMat *b = &sparse2;
SparseMatConstIterator_<double> it = a->begin<double>(),
it_end = a->end<double>();
for(; it != it_end; ++it)
{
double p = *it;
const cv::SparseMat::Node* anode = it.node();
double q = b->value<double>(anode->idx,(size_t*)&anode->hashval);
cout << p << " " << q << endl;
}
This gives me the following output:
1 1
1 1
1 1
Note that the 3rd element from both matrices is absent since sparse1
has a 0.
Is there a way to NOT ignore the non-zero elements from the sparse2
WHILE iterating through sparse1
?
Or do I have to stick to dense matrices for this scenario?