我知道,opencv矩阵中包含的数据不保证是连续的.为了清楚起见,这是Opencv文档中的一段:
Opencv提供了一个名为isContinuous()的函数来测试给定矩阵的数据是否是连续的.我的问题是
(1)如果我按如下方式创建新矩阵
Mat img = cv::imread(img_name)
Run Code Online (Sandbox Code Playgroud)
img中的数据是否保证是连续的?
(2)我知道通过从现有矩阵借用数据来创建新矩阵将导致不连续的数据
cv::Mat small_mat = large_mat.col(0);
Run Code Online (Sandbox Code Playgroud)
上面的代码通过借用large_mat的第0列来创建一个新的矩阵small_mat,从而导致small_mat中的连续数据.所以问题是,如果我在不借用现有矩阵的数据的情况下创建一个全新的矩阵,那么全新的矩阵是否会有不间断的数据?
(3)以下代码是否保证创建具有连续数据的矩阵?
cv::Mat mat(nRows, nCols, CV_32FC1);
Run Code Online (Sandbox Code Playgroud) 转换图像矩阵时遇到问题.我用:
Mat image = imread(image_name, 0);
Run Code Online (Sandbox Code Playgroud)
将图像读入Mat对象.当我查看调试器时,我看到数据存储为unsigned char.
接下来,我使用convertTo方法将数据转换为浮点值:
Mat image_f;
image.convertTo(image_f, CV_32F);
Run Code Online (Sandbox Code Playgroud)
我再次查看调试器,数据仍然是unsigned char类型.
我究竟做错了什么?