MATLAB中怎样提取一幅图像的RGB信息,并且将结果输出到一个矩阵中?

2023-01-07

本文主要是 MATLAB中怎样提取一幅图像的RGB信息,并且将结果输出到一个矩阵中? 相关的知识问答,如果你也了解,请帮忙补充。

1
打开图像
[FileName, FilePath]=uigetfile('*.jpg;*.png;*.tif;*.img;*.gif;','请选择图像数据');
str=[FilePath FileName];
Image=imread(str);
% 以对话框的形式选择打开一幅图像
2
设置参数
Gray=rgb2gray(Image);
R=Image(:,:,1); G=Image(:,:,2); B=Image(:,:,3);
diff_R=0; diff_G=0; diff_B=0; % 设置红、绿、蓝三种颜色提取阈值(越大越严格)
3
红色提取
Image_R=Image;
RP_R=Image(:,:,1); RP_G=Image(:,:,2); RP_B=Image(:,:,3);
XYR=~((R-G)>diff_R&(R-B)>diff_R); % 提取红色条件是R分量与G、B分量差值大于设定
Mask=Gray(XYR); % 灰照片掩膜
RP_R(XYR)=Mask; RP_G(XYR)=Mask; RP_B(XYR)=Mask; % 使得非红色区域变为灰*<*r />Image_R(:,:,1)=RP_R; Image_R(:,:,2)=RP_G; Image_R(:,:,3)=RP_B;
4
绿色提取
Image_G=Image;
GP_R=Image(:,:,1); GP_G=Image(:,:,2); GP_B=Image(:,:,3);
XYG=~((G-R)>diff_G&(G-B)>diff_G); % 提取绿色条件是G分量与R、B分量差值大于设定
Mask=Gray(XYG); % 灰照片掩膜
GP_R(XYG)=Mask; GP_G(XYG)=Mask; GP_B(XYG)=Mask; % 使得非绿色区域变为灰*<*r />Image_G(:,:,1)=GP_R; Image_G(:,:,2)=GP_G; Image_G(:,:,3)=GP_B;
5
蓝色提取
Image_B=Image;
BP_R=Image(:,:,1);BP_G=Image(:,:,2);BP_B=Image(:,:,3);
XYB=~((B-R)>diff_B&(B-G)>diff_B); % 提取绿色条件是G分量与R、B分量差值大于设定
Mask_B=Gray(XYB); % 灰照片掩膜
BP_R(XYB)=Mask_B; BP_G(XYB)=Mask_B; BP_B(XYB)=Mask_B; % 使得非蓝色区域变为灰*<*r />Image_B(:,:,1)=BP_R; Image_B(:,:,2)=BP_G; Image_B(:,:,3)=BP_B;
6
显示结果
subplot(2,2,1),imshow(Image); title('Image');
subplot(2,2,2),imshow(Image_R); title('Red Pass');
subplot(2,2,3),imshow(Image_G); title('Green Pass');
subplot(2,2,4),imshow(Image_B); title('Blue Pass');
http://jingyan.baidu.com/article/cb5d61050a03e0005c2fe0c1.html
参考知识1 clc,clear,close;
Im = imread('C:\Users\Administrator\Desktop\123.png') %读取文件路径,Im就是你要的举证
相似知识
matlab如何将RGB的三个值的灰度图像合成一张图片 参考知识1灰度图是二维矩阵,RGB图像是三维矩阵。假设B是RGB图像,可以用rgb2gary(B)将B转为灰度图像,你说的将R\G\B三个分量的灰度值合成一副图像,那么合成的图像是三维
matlab 读取一幅图像后,如何知道这幅图像具有RGBA四个通道的,如何输出A通道的值,放入一个二维数组中? %读取图片A=imread(’.tif‘);%这时A成为一个四层的矩阵(不正规,但是我一般是这样理解的)B=A(:,:,4);%即读取第四层的矩阵,就是Alpha通道参考知识1%如下语法,alpha读
MATLAB RGB图像处理 既然是对每一个的操作都是一样的,就可以直接对图像的像素矩阵进行操作,效果和你用循环对每一个点操作是一样的。例如:I=imread('XXXX');imshow(I);%第3步I2=25
什么是RGB矩阵? RGBHV,分别是红绿蓝三原色和行场同步信号。矩阵,实现多路信号进,多路信号输出,可以将任意一个输出口进行信号切换,来输出任意一个输入信号。参考知识1RGB矩阵是用来切换和传输RGBHV信号的矩阵,矩
matlab中实现旋转一张RGB图像 a=imread('D:\\ebook\\lena.bmp'); a=rgb2gray(a); a1=imrotate(a,35,'bilinear'
什么是RGB图像以及CMYK图像~ RGB是三原色图像文件,通常用于视频显示用。CMYK是补色模式文件,通常用于常规印刷。参考知识1电脑的显示色系为rgb,那么在编辑的时候,显示的色彩都是rgb色系,转换后,cmyk为印刷色系,不是为显
想用Matlab画出下面图片中函数的三维图像,求大神帮忙编写程序!!! 参考知识1题主的问题可以这样来考虑:首先,用solve函数解出p2,p3(或p0,p1)中任意两个变量其二,将p2,p3(或p0,p1)的解,代入P表达式中,得到含有两个变量的表达式,即P(p0,p1
RGB彩色图像中,每个像素的信息,如RGB对应取值信息,在图像组成文件中是啥样子啊?求详细讲解,最好举例说明 在数字图像处理过程中,一个像素的显示是通过R\G\B三个值组成的,当然我说的是彩色图像,不是灰度图像,这里面是有相关公式的,比如说一个像素的大小值是有计算机采集到的R\G