在OpenCV 2.0中,他们从单独的图像和矩阵类切换到称为cv::Mat
的统一类。那里的设计决定是什么?对我来说,每天都使用图像和矩阵,它们是非常不同的对象,恰好具有共性:它们都是在网格中访问的。然而,在我的脑海中使矩阵成为矩阵的事情是你可以做y = A*x
,其中A是m乘n,x是n乘1,y是m乘1.这几乎没有意义A是你想要做这个操作的原因。
合并这些类也有需要模板和奇数矩阵类型的令人讨厌的副作用(对于3通道浮点矩阵/图像,如CV_32FC3
)。既然我知道在OpenCV上工作的人并不疯狂,那么他们将图像和矩阵类合并的设计决策是什么?是代码重用吗?这是效率吗?
答案 0 :(得分:3)
主要的缺点是你不能重载'*'来进行多重化,但我认为你不应该为了比内置类型更复杂的东西重载'*'。
什么是卷积核 - 图像或矩阵?
你只需要学习一次所有处理程序/ ctor函数 - 而不是两组它们