使用 at<float>(i, j) 访问 cv::Mat 的元素.是 (x,y) 还是 (row,col)?

2021-12-10 00:00:00 opencv c++

当我们访问 cv::Mat 结构的特定元素时,我们可以使用 mat.at(i,j) 来访问位置 i,j 的元素.然而,目前尚不清楚 (i,j) 是指矩阵中的 x,y 坐标,还是第 i 行和第 j 列.

When we access specific elements of a cv::Mat structure, we can use mat.at(i,j) to access the element at position i,j. What is not immediately clear, however, whether (i,j) refers to the x,y coordinate in the matrix, or the ith row and the jth column.

推荐答案

OpenCV 与其他库一样,按行优先顺序处理矩阵(和图像).这意味着每个访问都被定义为 (row, column).

OpenCV, like may other libraries, treat matrices (and images) in row-major order. That means every access is defined as (row, column).

此一般规则的显着例外是 Matlab 和 Eigen 库.

Notable exceptions from this general rule are Matlab and Eigen libraries.

相关文章