有个matlab上的程序,移植到opencv中,运行的很慢。自己找了找原因,发现opencv给的求特征值和特征向量那个函数很慢,比opencv里还要慢大概两分钟多,我的矩阵使用的数据结构是Mat这个类。opencv一般情况下不是应该比matlab快才对的吗?我第一次用opencv,matlab应该说也是第一次,求帮助。
谢谢。我还想问问,我发现我程序里,单纯的两个大矩阵相乘也很慢(乘法不是我自己写的,就是opencv给的),是不是和我用Mat这个类来存储矩阵有关系,如果用cvMat是不是能快点。我的程序里计算一个20000*800的两个矩阵相乘要10几秒,求800*800矩阵的特征值要100多秒。是不是我用的是double类型对速度影响比较大,可如果用float又怕会溢出。
追答Mat的本质也是cvMat,对于那么大规模的数学运算其实没有什么区别。你当然可以试试。
用float确实可以提高运算速度。可以尝试一下嘛,毕竟不是所有地方都有溢出风险的。