news 2026/4/18 10:12:27

【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维

本文介绍了两种MATLAB图像转换方法:1) 将3D RGB图像转换为2D平铺格式,通过向量化操作将RGB通道展开为连续列,并将8位数据扩展到12位;2) 将2D平铺图像还原为3D RGB格式,通过反向操作分离通道并压缩回8位。两种方法均提供了循环和向量化两种实现方式,推荐使用更高效的向量化方法。转换过程包含16倍的缩放因子,用于8位到12位数据的相互转换。代码支持自动或手动指定图像尺寸,适用于显示驱动等硬件应用场景。

把RGB三通道图像转换为RGB平铺的2维图像,代码如下

function[output_2D_12bit]=img_3Dto2D_8Bto12B(input_3D_8bit,img_V,img_H)% 把3维RGB图像转换为显示驱动的RGB2维图像,支持1或3个输入% V1.0.0% 2025/12/13% 步达硬件ifnargin<2[img_V,img_H,~]=size(input_3D_8bit);endoutput_2D_12bit=zeros(img_V,img_H*3,'double');%%Method1:for循环赋值% for i=1:img_V% for j=1:img_H% output_2D(i,(j-1)*3+1) =input_3D(i,j,1);% output_2D(i,(j-1)*3+2) =input_3D(i,j,2);% output_2D(i,(j-1)*3+3) =input_3D(i,j,3);% end% end%Method2:向量赋值,速度快,推荐forj=1:img_Houtput_2D_12bit(:,(j-1)*3+1)=input_3D_8bit(:,j,1);output_2D_12bit(:,(j-1)*3+2)=input_3D_8bit(:,j,2);output_2D_12bit(:,(j-1)*3+3)=input_3D_8bit(:,j,3);endoutput_2D_12bit=output_2D_12bit*16;end

把RGB平铺的2维图像转换为RGB三通道图像,代码如下:

function[output_3D_8bit]=img_2Dto3D_12Bto8B(input_2D_12bit,img_V,img_H)% 把显示驱动的RGB2维图像转换为3维RGB图像,支持1或3个输入% V1.0.0% 2025/12/13% 步达硬件ifnargin<2[img_V,img_H]=size(input_2D_12bit);img_H=img_H/3;endoutput_3D_8bit=zeros(img_V,img_H,3,'uint8');% % Method1:for循环赋值% for i=1:img_V% for j=1:img_H% output_3D(i,j,1) =fix(input_2D(i,(j-1)*3+1)/16);% output_3D(i,j,2) =fix(input_2D(i,(j-1)*3+2)/16);% output_3D(i,j,3) =fix(input_2D(i,(j-1)*3+3)/16);% end% end% % Method2:向量赋值,速度快,推荐forj=1:img_Houtput_3D_8bit(:,j,1)=fix(input_2D_12bit(:,(j-1)*3+1)/16);output_3D_8bit(:,j,2)=fix(input_2D_12bit(:,(j-1)*3+2)/16);output_3D_8bit(:,j,3)=fix(input_2D_12bit(:,(j-1)*3+3)/16);endend
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 19:22:27

【期末复习2】

文章目录一、程序分析题项目结构分析题01分析题02分析题03分析题04二、程序改错题项目结构改错题01改错题02改错题03改错题04改错题05改错题06一、程序分析题 项目结构 分析题01 package ProgramAnalys; /*** 1.定义一个二维数组arr&#xff0c;包含3行3列的整数* 2.使用嵌套…

作者头像 李华
网站建设 2026/4/10 12:02:53

Flutter 高效调试技巧与代码案例详解

欢迎大家加入开源鸿蒙跨平台开发者社区&#xff0c;一起共建开源鸿蒙跨平台生态。 Flutter 高效调试技巧与代码案例详解 1. 基础日志输出技巧 1.1 print 与 debugPrint 的深入使用 在 Flutter 中&#xff0c;print 函数会将输出发送到标准输出流&#xff0c;但在某些平台&a…

作者头像 李华
网站建设 2026/4/16 12:07:42

[python] Python数据类使用指北

在Python编程中&#xff0c;类定义是组织数据与封装逻辑的核心范式。然而&#xff0c;当需要创建仅用于数据存储的简单类时&#xff0c;开发者往往需编写大量重复机械的样板代码。例如用于属性初始化的__init__方法、支持对象信息友好展示的__repr__方法、实现对象相等性比较的…

作者头像 李华
网站建设 2026/4/18 6:42:45

吉时利 2636B 与是德 B2900 数字源表对比评测

数字源表广泛应用于半导体器件测试、电池测试、材料特性分析、以及各种电子元件的精密测试。吉时利 2636B 和是德 B2900 系列是两款常见且性能优异的数字源表&#xff0c;但它们在某些方面存在差异&#xff0c;适用于不同的测试需求。性能指标对比 以下表格对吉时利 2636B 和是…

作者头像 李华