opencv中的Mat anf SparseMat和有什么区别? 什么时候使用每个?
答案 0 :(得分:1)
cv::Mat
和cv::SparseMat
之间的主要区别在于它们内部存储数据的方式。
cv::Mat
使用与C数据数组密切相关的 data数组(在该数组中,数据被顺序打包,并且可以直接从元素的索引计算地址)
而
cv::SparseMat
使用哈希表仅存储非零元素。该哈希表是自动维护的,因此,如果数组中(非零)元素的数量太大而无法进行有效查找,则该表会自动增长。
简单来说,
cv::Mat
类用于表示任意数量维的密集数组。
与非零条目数相比,数组可能非常大时,使用cv::SparseMat
类。