Mat.reshape
时间: 2023-06-23 20:01:35 浏览: 107
MNIST手写体数据集.mat格式
5星 · 资源好评率100%
Mat.reshape()是OpenCV中的一个函数,用于改变Mat的维度和大小,但不改变Mat元素的个数。该函数的语法如下:
```c++
cv::Mat cv::Mat::reshape(int cn, int rows = 0) const
```
其中,cn表示通道数,rows表示行数。如果rows为0,则会自动计算行数,以保证元素的个数不变。该函数返回一个新的Mat对象,但不会拷贝数据,新的Mat对象和原始的Mat对象共享内存。
例如,如果原始的Mat对象是一张3通道的640x480的图像,我们可以使用以下代码将其reshape为一维的向量:
```c++
cv::Mat image = cv::imread("image.jpg");
cv::Mat reshapedImage = image.reshape(1, image.total());
```
其中,第一个参数1表示新的Mat对象只有一个通道,第二个参数image.total()表示新的Mat对象的行数为原始Mat对象中元素的总数。这样,reshapedImage就是一个大小为1x(640x480x3)的Mat对象,即一个包含所有像素的一维向量。
阅读全文