智能车比赛中,可以把单片机采集到的图像数据存储起来,发到电脑上,使用该程序可以利用opencv来对图像进行处理。
输入灰度图得到数组
//输入灰度图像,返回数组
vector<vector<int>> Mat2Array(Mat image)
{
//得宽高
int w = image.cols;
int h = image.rows;
vector<vector<int>>image_arr;
image_arr.resize(h);
//得到初始位置的迭代器
Mat_<uchar>::iterator it = image.begin<uchar>();
//得到终止位置的迭代器
Mat_<uchar>::iterator itend = image.end<uchar>();
for (size_t i = 0; i < h; i++)
{
for (size_t j = 0; j < w; j++)
{
int pixel = *(it + i * w + j);
image_arr[i].push_back(pixel);
}
}
resize(image, image, Size(800,600));//缩放
imshow("截取到的图像", image);
return image_arr;
}
输入数组得到灰度图
//输入数组,返回灰度图像
Mat Array2Mat(vector<vector<int>> image_arr)
{
Mat M(600, 800, CV_8UC1);
if (image_arr.s