matlab怎么通过RGB三个通道的值还原彩图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab怎么通过RGB三个通道的值还原彩图相关的知识,希望对你有一定的参考价值。
参考技术A1、首先打开matlab读取一张图。
2、读完之后p的矩阵形式构成为:q(a1,a2,a3)a1:为行像素,a2:为列像素,a3为R/G/B通道。
3、通过lenght函数计算出p矩阵的行和列像素量。q1=length(q(:,1,1));q2=length(q(1,:,1))。
4、使用meshgrid函数生成网格矩阵,代码如下:x=q1:-1:1;y=1:q2;[X,Y]=meshgrid(x,y);
5、绘制三维坐标图,代码如下:plot3(X,Y,q(:,:,1),'k'),你可通过旋转查看该图像。
6、最后点击转换即可完成还原彩图。
matlab图片灰度模式转rgb模式,不需要还原彩色~
不需要还原彩色,只需要把double形式的转换为[:,:,3]的uint8形式,要保持rgb模式与灰度图一致~
参考技术A 直接把灰度值赋给RGB三个通道就可以了g=imread('D:\1.bmp');%1.bmp是灰度图
f=repmat(g,[1,1,3]);%f就是你所要的
imshow(f) 参考技术B 楼上正解追问
f得到的是double类型的,怎么变成uint8?
追答强制类型转换f = (uint8)f;就可以把其他类型数据转换为uint8
追问强制类型转换后得到的是一片黑~~
追答imshow(f,[]) 用这一条命令试试
追问虽然还是不对,但还是要谢谢你~~
本回答被提问者采纳以上是关于matlab怎么通过RGB三个通道的值还原彩图的主要内容,如果未能解决你的问题,请参考以下文章
labview怎么提取一幅图像rgb值,最后生成三个矩阵,每个矩阵里分别存放R,G,B的值