【C++、python】使用OpenCV处理RAW图像数据(读取raw文件、切割raw为图片、根据灰度阈值分割raw输出点云txt、三维模型分割)

在C++和Python中使用OpenCV处理RAW图像数据的基本步骤如下:

  1. 读取RAW文件。
  2. 将RAW数据转换为OpenCV可以处理的格式。
  3. 使用OpenCV函数处理图像(例如,保存为图片,或者进行图像切割)。

以下是使用C++和Python的OpenCV处理RAW图像的简单示例。

C++ 示例:




#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
 
int main() {
    std::ifstream file("image.raw", std::ios::binary);
    if (!file) {
        std::cerr << "Unable to open file!" << std::endl;
        return 1;
    }
 
    // 设置图像的宽度和高度
    int width = 640;
    int height = 480;
    cv::Mat rawData(height, width, CV_8UC1); // 创建一个单通道的图像矩阵
 
    file.read(reinterpret_cast<char*>(rawData.data), rawData.total() * rawData.elemSize());
    file.close();
 
    // 将图像切割为更小的图像
    int cutX = 100; // 起始列
    int cutY = 100; // 起始行
    int cutWidth = 320; // 切割宽度
    int cutHeight = 240; // 切割高度
 
    cv::Mat cutImage = rawData(cv::Rect(cutX, cutY, cutWidth, cutHeight));
 
    // 保存切割后的图像
    cv::imwrite("cut_image.png", cutImage);
 
    return 0;
}

Python 示例:




import cv2
import numpy as np
 
# 设置图像的宽度和高度
width = 640
height = 480
 
# 读取RAW文件
rawData = np.fromfile("image.raw", dtype=np.uint8)
 
# 重新调整数组形状
rawData = rawData.reshape((height, width))
 
# 将图像切割为更小的图像
cutX = 100  # 起始列
cutY = 100  # 起始行
cutWidth = 320  # 切割宽度
cutHeight = 240  # 切割高度
 
cutImage = rawData[cutY:cutY + cutHeight, cutX:cutX + cutWidth]
 
# 保存切割后的图像
cv2.imwrite("cut_image.png", cutImage)

在这两个示例中,我们首先读取RAW文件,然后将其转换为OpenCV可以处理的cv::Mat或numpy数组。接着,我们使用cv::Rect或numpy索引来切割图像,最后将切割后的图像保存为文件。注意,你需要根据实际的RAW图像数据和文件大小调整宽度、高度和切割坐标。

最后修改于:2024年08月07日 13:39

评论已关闭

推荐阅读

DDPG 模型解析,附Pytorch完整代码
2024年11月24日
DQN 模型解析,附Pytorch完整代码
2024年11月24日
AIGC实战——Transformer模型
2024年12月01日
Socket TCP 和 UDP 编程基础(Python)
2024年11月30日
python , tcp , udp
如何使用 ChatGPT 进行学术润色?你需要这些指令
2024年12月01日
AI
最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)
2024年11月24日
ChatGPT 和 DALL·E 2 配合生成故事绘本
2024年12月01日
omegaconf,一个超强的 Python 库!
2024年11月24日
【视觉AIGC识别】误差特征、人脸伪造检测、其他类型假图检测
2024年12月01日
[超级详细]如何在深度学习训练模型过程中使用 GPU 加速
2024年11月29日
Python 物理引擎pymunk最完整教程
2024年11月27日
MediaPipe 人体姿态与手指关键点检测教程
2024年11月27日
深入了解 Taipy:Python 打造 Web 应用的全面教程
2024年11月26日
基于Transformer的时间序列预测模型
2024年11月25日
Python在金融大数据分析中的AI应用(股价分析、量化交易)实战
2024年11月25日
AIGC Gradio系列学习教程之Components
2024年12月01日
Python3 `asyncio` — 异步 I/O,事件循环和并发工具
2024年11月30日
llama-factory SFT系列教程:大模型在自定义数据集 LoRA 训练与部署
2024年12月01日
Python 多线程和多进程用法
2024年11月24日
Python socket详解,全网最全教程
2024年11月27日