问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用Matlab读入并显示图片文件

发布网友 发布时间:2022-04-21 14:01

我来回答

3个回答

热心网友 时间:2023-08-12 03:21

  imMatrix = imread('name.jpg')%jpg也可以bmp,图片格式
MATLAB图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像。MATLAB直接从图像文件中读取的图像为RGB图像。
它存储在三维数组中。这个三维数组有三个面,依次对应于红(Red)、绿(Green)、蓝(Blue)三种颜色,而面中的数据则分别是这三种颜色的强度
值,面中的元素对应于图像中的像素点。设所得矩阵为X三维矩阵(256,256,3) ,X(:,:,1)代表红颜色的2维矩阵
X(:,:,2)代表绿颜色的2维矩阵,
X(:,:,3)代表兰颜色的2维矩阵。[X, map]=imread('34.bmp');r=double(X(:,:,1)); %r是256
x 256的红色信息矩阵g=double(X(:,:,2)); %g是256 x 256的绿色信息矩阵b=double(X(:,:,3));
%b是256 x 256的兰色信息矩阵
索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜
色图数组map中的索引。颜色图map为m×3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=[RGB],R、G、B为值域为
[0,1]的实数值,m为索引图像包含的像素个数。

对于相同的数据,采用uint8格式比双精度格式节省内存空间,从而更经济。在MATLAB中
如果索引图像的颜色图小于256行,则它的图像矩阵以uint8格式存储,否则以双精度格式存储。
一:imread:从图像文件夹中读取图像。
A = imread(FILENAME,FMT) 读取图像到A,如果文件是包含一灰度图像,A是一二维矩阵,如果文件是包含一真彩色图像(RGB),A是一三维矩阵(M-by-N-by-3)。FILENAME :图像文件名;FMT:图像文件格式;
文件必须在当前目录下,或在Matlab的一路径上。如果 imread不能够找到一名称为FILENAME的文件,那么它将找一名为FILENAME.FMT的文件
[X,MAP] = imread(FILENAME,FMT) 把图像FILENAME读入与它相关的图像色彩信息写入MAP,图像色彩信息值在范围[0,1]中自动地重新调整.
[...] = imread(FILENAME)这种方式是试图得到文件的格式从文件所包含的信息。
[...] = imread(URL,...)从一Internet URL上读图像 URL 必须包含协议(即: "http://").
1.2数据类型:
TIFF的特殊语法:
[...] = imread(...,IDX)
从很多图像TIFF文件中读一个图像;IDX是一个整数值,它显示了所读图像在文件中的顺序,例如:如果 IDX是 3,
imread将读文件中的第三个图像。 如果省略了这个变量, imread将读文件中的第一个图像.
IMREAD支持的图像文件格式:JPEG TIFF GIF BMP PNG HDF PCX XWD ICO CUR RAS PBM PGM PPM
相关信息也可在Matlab中查看: imfinfo, imwrite, imformats, fread,
二:imwrite输出图像
imwrite(A,FILENAME,FMT) 把图像 A 写入图像文件 FILENAME.
imwrite(X,MAP,FILENAME,FMT) 把 X和它的相关色彩信息MAP写入FILENAME.
imwrite(...,FILENAME) 把图像写入图像文件FILENAME,并推测可能的格式用来做filename的扩展名。扩展名必须是FMT中一合法名.
imwrite(...,PARAM1,VAL1,PARAM2,VAL2,...) 不同的参数控制输出文件的各种不同特征。参数要是当前所支持的HDF,JPEG, TIFF, PNG, PBM, PGM, 和PPM 文件
三:image 显示图像.image(C) 把矩阵 C 转成一图像. C 可以是一MxN 或 MxNx3维的矩阵,且可以是包含 double,
uint8,或 uint16 数据.image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小。但可以加上axis
off命令即可把坐标去掉。
imshow只是显示图像。用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像。
图像像素矩阵的数据类型:(1)显示真彩色图像像素三维矩阵X,如果是uint8类型,要求矩阵的数据范围为0-255,(2)如果是double型,则其数据范围为0-1,要不就会出错或者出现空白页。
类型转换:(1)如果你原来的数值是uint8,在运算中转换为double后,实际要显示的数值没有改变的话,只要用uint8(X)就可转换为
uint8型,如果不想转换频繁,也可在显示时用X/255来转换为符合0-1double类型范围要求的数值显示。(2)如果显示索引图像(二维矩
阵),如果索引图像像素数值是double型,则它的取值范围为1-length(colormap),数值起点为1,则矩阵中数值为1的对应
colormap中第一行数据,如果索引图像像素数值是uint8,则取值范围为0-255,数值起点为0,则矩阵中数值为0的对应colormap中第
一行数据,所以索引图像这两个数据类型之间的转换,要考虑到+1或-1。直接用uint8或double转换则会查找移位,产生失真情况。uint16数
据类型与uint8类似,取值范围为0-65536。
四:其它常用图像操作:
图像显示于屏幕有imshow( ), image( )函数;
图像进行裁剪imcrop( );
图像的插值缩放imresize( )函数实现;
旋转用 imrotate( )实现。
五:具体的操作
下面通过运用图像处理工具箱中的有关函数对下图(nice.bmp)进行一些变换。见后面的transfer.m内容!

变换前图片:(nice.bmp)

变换后所得图片:newpic.bmp
例,在电脑F\picture下有一彩色图像文件nice.bmp,则可由下述语句读取:
下面是对图像 nice.bmp以y轴为对称轴所做的一个对称变换。
% Transfer1.m
clear all
figure
[x,map]=imread('F:\picture\nice.bmp');% 所得x为一375x420x3的矩阵
[w1,w2,w3]=size(x); % 375 X 420
w22=floor(w2/2);
image(x); %显示出图像
title('HELLO! @This is the first pose of me')%则显示出图像nice.bmp
axis off; % 去掉图像中的坐标
colormap(map); % colormap(),图像查找表函数。函数结构为colormap(map),设置当前的图像查找表到map。
imwrite(x,map,'nice.bmp')
for i=1:w1
for j=1:w22 % 图像关于y轴对折
t=x(i,j);
x(i,j)=x(i,w2-j+1);
x(i,w2-j+1)=t;
end
end
figure
image(x);
axis off
title('HELLO!!@@ Can you find any difference of my two picture! ') colormap(map);
imwrite(x,map,'newpic.bmp') %把x写到nepic2.bmpz中去
% Transfer1.m文件中包含了最基本也是最常用的对读像处理的命令。
在对图像处理的整个过程中,实质上是对[x,map]=imread(‘figure')函数中所得x矩阵的各种变换!

热心网友 时间:2023-08-12 03:21

MATLAB 支持的图形图象格式很全面的,其自带的图片文件存储位置为MATLAB 安装文件夹下的toolbox\images\imdemos.使用imread()函数来读取图片:比如你要读的图片在D:\PIC,叫photo.jpg则应输入输入:A=imread('d:\pic\photo.jpg'); imshow(A);也可以先把图片保存到work 目录中。Matlab 安装时一般默认位于C:\Documents and Settings\Administrator\My Documents\MATLAB此时可以直接输入:A=imread('photo.jpg'); imshow(A);以下几行代码,可以实现多图片文件的读入:%%%%%%%%%%%%%%%%%%%%%%%all_ccdfile=char('LENA616.bmp', 'LENA617.bmp'); %可以在这这里继续添加你的文件名字,这里比较耗时tmp=size(all_ccdfile);file_num=tmp(1); %%%file_num:文件的个数for i=1:file_numccdfile=deblank(all_ccdfile(i,:));ii=imread(ccdfile); %%%%%%读入图片%%%处理end%%%%%%%%%%%%%%%%%%%%%%%%%%利用以上代码可以实现对几百幅图像一次处理,让电脑慢慢算,自己回家睡觉去了!

热心网友 时间:2023-08-12 03:21

MATLAB支持的图形图象格式很全面的,其自带的图片文件存储位置为MATLAB安装文件夹下的toolbox\images\imdemos.使用imread()函数来读取图片:比如你要读的图片在D:\PIC,叫photo.jpg则应输入输入:A=imread('d:\pic\photo.jpg'); imshow(A)

也可以先把图片保存到work目录中。Matlab安装时一般默认位于C:\Documents and Settings\Administrator\My Documents\MATLAB此时可以直接输入:A=imread('photo.jpg'); imshow(A);

以下几行代码,可以实现多图片文件的读入:%%%%%%%%%%%%%%%%%%%%%%%all_ccdfile=char('LENA616.bmp', 'LENA617.bmp');  %可以在这这里继续添加你的文件名字,这里比较耗时tmp=size(all_ccdfile);  

        file_num=tmp(1);     

        %%%file_num:文件的个数

       for i=1:file_num

       ccdfile=deblank(all_ccdfile(i,:));

      ii=imread(ccdfile);    

      %%%%%%读入图片

     %%%处理

     end

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
母亲55岁得了糖尿病,吃药控制在9以内,最近有点效果不好,到13点几了... ...很害怕发展成糖尿病足,有什么方法控制血糖吗? 我的妈妈得了糖尿病,那个什么值8点多,似乎不能治好,那么如果能控制血糖... 由糖尿病引起的白内障怎样才能控制?最好用中药的方法或者说按摩哪个穴位... 新凯美瑞2.5发动机和8自动变速箱是进口的吗? 网页图片下载神器!图片收集与管理利器Eagle ...怎么弄到自己的电脑里面去自己玩,不用4399游戏盒。 关于足部反射区,懂中医的入 脚部反射区图解图片 足部反射区疼痛怎么办 matlab 怎么批量读取图像 matlab怎么读取图片信息并显示结果 如何用Matlab读取图片 如何用Matlab读入并显示图片文件? 用MATLAB如何读取一个文件夹里的图片 如何用matlab读取图像文件 给我的英文是什么? MATLAB如何读取图片? 如何一键登陆多个QQ帐号? 怎么在一部手机上同时登陆多个QQ号 安利皇后锅具粘锅怎么办? qq如何用一个号登录多个小号 安利皇后锅第一次用,锅底洗不干净,是不是正常的 安利的皇后锅怎么样? 如何一次登录两个QQ号 一个QQ号如何同时在两个手机上登陆 安利锅使用六大注意事项是什么? qq怎么登多个号 如何去除不锈钢锅外面被烧得黑黑的那层? 安利锅子烧黑怎么办 matlab 读取电脑中图像 MATLAB如何读取图片 利用Matlab中的imread怎么读取图片 matlab怎么读取一幅图像,并转换为灰度图像 matlab怎么读取图像啊,我放在桌面上读不出来啊 matlab怎么使用? 如何用Matlab读入并显示图片文件(单张或多张) matlab怎么读取指定路径下所有的图片? 怎样重新安装微信? 我不小心把微信删掉了要怎么下载? 我微信自己删除后,想要重新下载,怎么下载? 我卸载把微信卸载了想重新安装 如何安装已删除的微信 我的手机微信误删了安装不上怎么办 我的微信不小心删了,如何再安装 我‖·微信不小心删了,咋下载啊? 不小心把微信删了,怎样下载 我微信不小心删了,可是要下载老安装不了 代理阿道夫洗发水怎么代理 如何申请欧莱雅的代理商?