Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 为什么opencv';s Mat::rows和Mat::cols是否已签名而不是未签名?_C++_Opencv - Fatal编程技术网

C++ 为什么opencv';s Mat::rows和Mat::cols是否已签名而不是未签名?

C++ 为什么opencv';s Mat::rows和Mat::cols是否已签名而不是未签名?,c++,opencv,C++,Opencv,我正在用gcc的-Wall标志编译一个程序。我在某个点对Mat::cols和Mat::rows进行比较(使用无符号整数),并得到一个关于比较有符号整数和无符号整数的警告。尽管抛弃这一点没什么大不了的,但我很好奇Mat的负尺寸背后的原理是什么 从逻辑上讲,一个矩阵不能比一个空矩阵(0行0列)更空,那么一个-1行或-1列的矩阵意味着什么呢 我想是因为大部分inti被用作循环计数器。当uint为cols和rows时,将出现许多警告。此外,构建维度差异会更容易出错 除此之外。在我看来,OpenCv根本不

我正在用gcc的
-Wall
标志编译一个程序。我在某个点对
Mat::cols
Mat::rows
进行比较(使用无符号整数),并得到一个关于比较有符号整数和无符号整数的警告。尽管抛弃这一点没什么大不了的,但我很好奇
Mat
的负尺寸背后的原理是什么

从逻辑上讲,一个矩阵不能比一个空矩阵(0行0列)更空,那么一个-1行或-1列的矩阵意味着什么呢


我想是因为大部分
inti
被用作循环计数器。当uint为cols和rows时,将出现许多警告。此外,构建维度差异会更容易出错

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


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

我认为这只是一个设计缺陷。很多人,包括许多知名大型图书馆的作者,都不太善于使用整数类型。对所有类型的整数使用
int
是一个常见的错误。我误解了这个问题,我的错。我想到了Mat中的价值观。删除我的帖子。我也讨厌这样。行和.col被签名。。。刚刚习惯于在std::vector的无符号类型上循环…我认为vlad关于int循环计数器的说法可能是一个原因。我个人总是使用大小作为循环计数器类型。需要更多的键入,但对于大小和索引来说,这是正确的类型