#include <iostream>
#include <fstream>
#include <vector>
#include <stdint.h>
#include <opencv2/opencv.hpp> // 包含OpenCV头文件
using namespace std;
// 注意:确保这些值与Python脚本中生成数据的值匹配。
const int WIDTH = 1920;
const int HEIGHT = 1080;
const int CHANNELS = 1;
int main() {
// 用以存储从文件中读取的数据的缓冲区
std::vector<uint8_t> buffer(HEIGHT * WIDTH * CHANNELS);
// 打开文件
std::ifstream file("hwc_1080_1920_1_uint8.bin", std::ios::binary);
if (file.is_open()) {
// 从文件读取数据到缓冲区中
file.read(reinterpret_cast<char*>(buffer.data()), buffer.size() * sizeof(uint8_t));
if (file) {
std::cout << "All data read successfully." << std::endl;
}
else {
std::cerr << "Error occurred while reading from the file." << std::endl;
file.close();
return 1;
}
file.close();
std::cout << "x position: " << std::endl;
cv::namedWindow("Canvas", cv::WINDOW_NORMAL);
cv::Mat canvas(HEIGHT, WIDTH, CV_8UC3, cv::Scalar(255, 255, 255)); // 创建一个300x300像素的画布
for(int i=0;i< WIDTH;i++){
for (int j = 0; j < HEIGHT; j++) {
float x_w = buffer[(j * WIDTH + i) * CHANNELS + 0]; // x_w值
//std::cout << x_w << " ";
cv::circle(canvas, cv::Point(i, j), 1, cv::Scalar(x_w, x_w, x_w), -1);
}
//std::cout << std::endl;
}
cv::resizeWindow("Canvas", 600, 400);
cv::imshow("Canvas", canvas);
cv::waitKey(0); // 等待10秒
std::cout << "completed." << std::endl;
处理读取到的数据。此处你可以添加自己的逻辑代码来处理buffer中的数据。
例如,以下为访问某个特定像素的通道值的方式:
//int y = 1079; // 第10行
//int x = 960; // 第20列
//float x_w = buffer[(y * WIDTH + x) * CHANNELS + 0]; // x_w值
//float y_w = buffer[(y * WIDTH + x) * CHANNELS + 1]; // y_w值
//float yaw = buffer[(y * WIDTH + x) * CHANNELS + 2]; // yaw值
//float distance = buffer[(y * WIDTH + x) * CHANNELS + 3]; // distance值
//std::cout << "Pixel at position (" << y << ", " << x << "): "
// << "x_w = " << x_w << ", "
// << "y_w = " << y_w << ", "
// << "yaw = " << yaw << ", "
// << "distance = " << distance << std::endl;
}
else {
std::cerr << "Could not open the file." << std::endl;
return 1;
}
return 0;
}
原文地址:https://blog.csdn.net/LW_12345/article/details/134710595
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38732.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。