将IplImage和cv :: Mat合并的设计决策是什么?

3
在OpenCV 2.0中,他们从拥有独立的图像和矩阵类转换为一个统一的类,叫做cv::Mat。这是什么设计决策?对于我而言,每天使用图像和矩阵的人来说,它们是非常不同的对象,碰巧有一些共同点:它们都可以通过网格访问。然而,在我看来,使矩阵成为矩阵的东西是你可以执行y = A*x,其中A是m乘n,x是n乘1,y是m乘1。当A是一个图像时,这几乎没有意义,你为什么想要执行这个操作。
合并类还带来了一些讨厌的副作用,如需要模板化和奇怪的矩阵类型(例如,CV_32FC3用于3通道浮点矩阵/图像)。由于我知道在OpenCV上工作的人并不疯狂,那么是什么设计决策让他们合并图像和矩阵类呢?是代码重用吗?还是效率的原因?

6
这是一个向OpenCV邮件列表提问的问题,在那里你可以获得原始开发者分享有关此决定的知识。 - karlphillip
1个回答

3

主要的缺点是你不能重载 "*" 进行乘法,但我认为你不应该重载 "*" 进行比内置类型更复杂的操作。

卷积核是图像还是矩阵?

你只需要学习一次所有处理程序/构造函数 - 而不是两组。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接