我知道 OpenCV 矩阵中包含的数据不保证连续。为了让自己清楚,以下是 OpenCV 文档 中的一段话:
OpenCV 提供了一个名为 isContinuous()
的函数来测试给定矩阵的数据是否连续。我的问题是:
- 如果我像下面这样创建一个新矩阵
cv::Mat img = cv::imread(img_name)
img
标签中的数据是否保证连续性?
- 我知道通过从现有矩阵中借用数据创建新矩阵会导致不连续的数据。
cv::Mat small_mat = large_mat.col(0);
上面的代码通过从large_mat
中借用第0列创建一个新的矩阵small_mat
,导致small_mat
中的数据不连续。因此问题是,如果我创建一个全新的矩阵而不是从现有矩阵中借用数据,那么这个全新的矩阵会具有连续数据还是不连续数据?
以下代码是否保证创建具有连续数据的矩阵?
cv::Mat mat(nRows, nCols, CV_32FC1);