1.sensor_msgs::Image
- data按rgbrgb…的方式保存圖像
- 將保存在txt中的data用opencv顯示
#include <fstream>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
int data[3 * 640 * 480];
void array2mat(int *data, int width, int height)
{
cv::Mat src = cv::Mat::zeros(height, width, CV_8UC3);
for (int i = 0; i < height; ++i)
{
for (int j = 0; j < width; j++)
{
src.at<cv::Vec3b>(i, j)[0] = data[(width * i + j)*3+2];
src.at<cv::Vec3b>(i, j)[1] = data[(width * i + j)*3+1];
src.at<cv::Vec3b>(i, j)[2] = data[(width * i + j)*3];
//cout << (int)src.at<cv::Vec3b>(i, j)[0] << endl;
//cout << (int)src.at<cv::Vec3b>(i, j)[1] << endl;
//cout << (int)src.at<cv::Vec3b>(i, j)[2] << endl;
}
}
cv::imshow("img", src);
cv::waitKey(0);
}
int main()
{
ifstream input("pic.txt");
for (int i = 0; i < 640 * 480*3; ++i)
input >> data[i];
array2mat(data, 640, 480);
input.close();
return 0;
}