当前位置: 首页 > news >正文

RAW图像简单可视化以及png、jpg的区别

RAW图像的简单可视化

import numpy as np
import cv2
import ospath ='the path of raw'
for file in os.listdir(path):if file.endswith('.npy'):# 1. 加载4通道RAW数据raw_data = np.load(os.path.join(path, file))# 2. 提取RGGB拜耳阵列(假设第0通道是R,第1通道是G1,第2通道是G2,第3通道是B)# 注意:不同相机的RAW格式可能不同,需根据实际情况调整h, w, _ = raw_data.shaperggb_data = np.zeros((h, w), dtype=raw_data.dtype)  # 初始化单通道RGGB阵列# 填充RGGB拜耳模式(假设4通道顺序是 [R, G1, G2, B])rggb_data[0::2, 0::2] = raw_data[0::2, 0::2, 0]  # Rrggb_data[0::2, 1::2] = raw_data[0::2, 1::2, 1]  # G1rggb_data[1::2, 0::2] = raw_data[1::2, 0::2, 2]  # G2rggb_data[1::2, 1::2] = raw_data[1::2, 1::2, 3]  # B# 3. 使用OpenCV去马赛克(确保输入是单通道)rgb_image = cv2.cvtColor(rggb_data, cv2.COLOR_BayerRG2BGR_EA)  # EA表示边缘感知插值# 4. 保存结果cv2.imwrite(os.path.join(path, file).replace('npy', 'png'), cv2.cvtColor(rgb_image, cv2.COLOR_BGR2RGB))

可视化的图像整体偏绿在这里插入图片描述

png、jpg的区别

上面的代码最后一行如果保存为jpg格式数据,那么就会显示成一幅严重曝光的图像,几乎看不出来图像信息。
在这里插入图片描述
这是因为RAW数据通常是 12/14/16位(值范围0-65535),而JPG仅支持 8位(0-255)。
png是无损压缩,支持16位存储,保存时会保留RAW的原始位深(需明确指定dtype=np.uint16)。而JPG强制转换为8位且无法正确处理高位深数据的非线性映射

http://www.lryc.cn/news/574362.html

相关文章:

  • 设计模式 - 抽象工厂
  • AI智能体——MCP 模型上下文协议
  • 71-Oracle Undo与Flashback管理(Guarantee设置)深度解析
  • vue3+ELInput无法输入的问题
  • 传输层协议UDP
  • 服务器中集群防御和单机防御分别是指什么?
  • (cvpr2025) DefMamba: Deformable Visual State Space Model
  • github常用插件
  • Java编程中的设计模式:单例模式的深度剖析
  • EEG分类攻略2-Welch 周期图
  • Python 数据分析与可视化 Day 5 - 数据可视化入门(Matplotlib Seaborn)
  • Spring Boot使用MCP服务器
  • Flask框架index.html里引用的本地的js和css或者图片
  • EEG分类 - Theta 频带 power
  • C++ Vector 基础入门操作
  • QML革命:下一代GUI开发的核心优势详解
  • 论文笔记:Answering POI-Recommendation Questions using TourismReviews
  • 单片机——浮点数转换4位数码管显示
  • 【笔记】在Cygwin上使用mintty连接wsl
  • 1.2、CAN总线帧格式
  • Apache SeaTunnel Flink引擎执行流程源码分析
  • DeepSeek今天喝什么随机奶茶推荐器
  • 如何利用Charles抓包工具提升API调试与性能优化
  • 组件化设计核心:接口与实现分离(C++)
  • 拼团系统多层限流架构详解
  • 《去哪儿网Redis高并发实战:从问题定位到架构升级》
  • 边缘-云协同智能视觉系统:实时计算与云端智能的融合架构
  • C++的前世今生-C++11
  • 《哈希表》K倍区间(解题报告)
  • go channel用法