matlab怎么读取一幅图像,并转换为灰度图像

时间:2024-01-03 18:10:41 买帖  | 投诉/举报

篇首语:本文由小编为大家整理,主要介绍了matlab怎么读取一幅图像,并转换为灰度图像相关的知识,希望对你有一定的参考价值。

1、打开图片:在主界面上输入命令将图像转换为数据;Data = imread('folder icon.bmp')。

2、查看数据:双击工作区中的数据,我们可以看到图像数据的具体信息。

3、验证图像结果:输入命令,我们可以看到数据数据是图片所代表的;Imshow(数据)。

4、灰度说明:我们可以通过输入指令获得灰度后的矩阵; GDATA = rgb2gray(数据)。

5、查看灰色矩阵:双击,右边的工作区,gdata,可以看到数据的具体信息。

6、显示灰度图像:如下图所示,可以看到图片后的灰度。

参考技术A

matlab 用rgb2gray 将彩色图像转换为灰度图像

>> I=imread('D:\\Lena.jpg');

>> x=rgb2gray(I);

>> figure(1);

>> subplot(121);

>> imshow(I);

>> title('原始图像');

>> subplot(122);

>> imshow(x);

>> title('灰度图像'); 

彩色图像是RGB,直接用rgb2gray

MATLAB 并没有自带gray2rgb
灰度图像 是个 N x M 矩阵。 N 和 M 为坐标,存储的数值是灰度深浅强度。RGB 为 N x M x 3 的矩阵。N 和 M 为坐标,附带的 3 是 [红,绿,蓝] 三色,数值各取 0-1.0 之间。转换上,如果灰度图像为 1024 x 768 大小,则要建立一个 1024 x 768 x 3 的矩阵。再在每一像素上添上颜色。例如,rgb_image(2, 4, :)= [0 1 1] %(坐标(2,4)=浅蓝色)

为了进行并行处理。我将512*512 的矩阵分成了64*64 的独立小块,并存至对应的文件中。

for i=1:64:449

for j=1:64:449

y=x(i:i+63,j:j+63);

h=y';

a=(i-1)/64+1;

b=(j-1)/64+1;  

sload=['fid=fopen(''x' num2str(a) num2str(b) '.txt'',''wt+'')'];

eval_r(sload);

fprintf(fid, 'M\\t', h);   

fclose(fid);      

end

end

参考技术B

不知道你是不是这个意思:

 I = imread('ngc6543a.jpg');%给出图片路径即可,I是一个三维矩阵

J = rgb2gray(I);

figure, imshow(I), 

figure, imshow(J);

本回答被提问者和网友采纳
参考技术C I = rgb2gray(RGB);
Matlab函数rgb2gray,函数功能:将真彩色图像转换为灰度图像。在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。
调用方式:

I = rgb2gray(RGB)
将真彩色RGB图像转换成灰度图像。(RGB并不发生变化)
newmap = rgb2gray(map)
返回一个灰度调色板。
以下是这个函数的实例:

% 1. 显示RGB真彩色图像
imgrgb = imread('flower.jpg');
figure('Name', '显示真彩色图像')
imshow(imgrgb)
% 2. 显示灰度图像
imggray = rgb2gray(imgrgb);
figure('Name', '显示灰度图像')
imshow(imggray)

MATLAB如何切割图像

我想把一幅图切成3*3或者4*4,分别储存,请问如何实现?

谢谢

直接用矩阵操作就可以了,用imread读取图像,读取的结果在matlab中就是一个矩阵,然后用imwrite把你需要的部分写到新的文件中。

例如(时间有限,仅写了灰度图像的一部分):

I=imread('source.bmp');
n=ndims(I); %获得图像维数,如果是2就是灰度图像,3是彩色图像,需要分别处理
if n==2
[x,y]=size(I); %求图像大小
imwrite(I(1:round(x/4),1:round(y/4)),'file.bmp','bmp');
end
这样就把图像分成4*4,最左上角的图像保存到file.bmp中了。

思路大致如此,手头没有matlab,上班ing,供你参考。

以上。
专业路过的老狼
参考技术A g=imread('XX.png');
% g=rgb2gray(g);
g1=g(:,1:1520,:);%g1=g(:,1:1520);
g2=g(:,1521:end,:);%g2=g(:,1521:end);
imwrite(g1,'left.png');
imwrite(g2,'right.png');
1520是我图像的大小 因为我分图要求细一点,也可以用round函数来大约分区域;
现程序是分割彩色图像,可以把注释换掉就是分割灰色图像;
这个只限于水平分割,可以改进变成上下左右同时分割;

以上是关于matlab怎么读取一幅图像,并转换为灰度图像的主要内容,如果未能解决你的问题,请参考以下文章