为什么opencv的Mat :: rows和Mat :: cols签名而不是unsigned?

时间:2014-03-14 02:46:09

标签: c++ opencv

我正在使用gcc的-Wall标志编译程序。我在某个时刻对Mat::colsMat::rows进行了比较(使用unsigned int)并收到有关比较有符号和无符号整数的警告。虽然抛出这个并不是什么大不了的事,但我很好奇Mat具有负面大小背后的理由是什么。

逻辑上,矩阵不能比空矩阵(0行和0列)更空,那么具有-1行或-1 cols的矩阵是什么意思?

There doesn't seem to be much performance difference between computations on signed and unsigned ints either.

1 个答案:

答案 0 :(得分:5)

我认为因为大多数int i被用作循环计数器。使用uint作为cols和rows,将出现许多警告。同样建立尺寸差异会更容易出错。

除此之外。在我看来,OpenCv根本不是一个好的设计的好例子。 有几十个坏班设计的例子。此外,生成的文档的设计非常糟糕(例如,函数的所有重载及其参数混合在一起)。

但它是一个非常全面和良好的图像处理库。这个借口很多:)