news 2026/4/21 14:36:15

【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/20 23:40:09

EmotiVoice语音合成冷热数据分离存储方案

EmotiVoice语音合成冷热数据分离存储方案 在当今智能语音服务快速普及的背景下&#xff0c;用户对语音自然度和情感表达的要求已远超“能听清”这一基本需求。从虚拟主播的情绪化播报&#xff0c;到AI客服中带有温度的回应&#xff0c;再到游戏NPC根据剧情动态切换语气——这些…

作者头像 李华
网站建设 2026/4/21 0:18:16

C语言初学笔记2---C语言常见概念

目录 10.转义字符1.学习\\? → 在书写连续多个问号时使用&#xff0c;防止他们被解析成三字母词2.学习 \\ → 输出单个和多个单引号 2.1输出单个单引号2.2输出多个单引号 3.学习 \\" → 输出单个和多个双引号 "3.1输出单个双引号3.2输出多个双引号 4.学习\\\ → 表示…

作者头像 李华
网站建设 2026/4/18 8:34:56

《自动控制原理》第 5 章 频率响应分析法:5.3、5.4、5.5

5.3 控制系统频率特性图的绘制控制系统的频率特性可视为由典型环节频率特性组合而成的。本节将在上一节讨论的基础之上&#xff0c;介绍复杂控制系统频率特性图的绘制问题。一般来说&#xff0c;上节所介绍的典型环节频率特性图的绘制方法&#xff0c;可以推广至复杂控制系统。…

作者头像 李华
网站建设 2026/4/19 16:47:53

Java毕设项目:基于JAVA的北京市公交管理系统基于Java+Vue+SpringBoot的北京市公交管理系统(源码+文档,讲解、调试运行,定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

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

C++医学图像处理经典ITK库用法详解<三>: 图像配准模块功能

1、ITK库概述ITK (Insight Segmentation and Registration Toolkit) 是一个开源的跨平台软件开发工具包&#xff0c;主要用于图像处理&#xff0c;特别是生物医学图像处理领域。该工具包提供了一套丰富的图像处理算法&#xff0c;特别是在图像分割和配准方面具有强大的功能。IT…

作者头像 李华