opencv图片转数组
时间: 2023-12-16 21:45:33 浏览: 28
可以使用OpenCV库中的cv::imread函数读取图片,然后将其转换为数组。
以下是一个示例代码,将一张图片读取并转换为数组:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main()
{
// 读取图片
Mat image = imread("example.jpg");
// 将图片转换为数组
int rows = image.rows;
int cols = image.cols;
int channels = image.channels();
uchar* data = image.data;
int index = 0;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
for (int k = 0; k < channels; k++)
{
// 访问像素值
cout << "Pixel (" << i << ", " << j << ", " << k << "): " << (int)data[index] << endl;
index++;
}
}
}
return 0;
}
```
在这个示例中,我们使用Mat类来存储图片数据,并使用data指针访问像素值。注意,这个指针指向的数据是按行存储的,即每一行的数据存储在连续的内存区域中。因此,我们需要使用三重循环来遍历整个数组。