最基本的读图函数:imread

imread函数的语法并不难,I=imread('D:\fyc-00_1-005.png');其中括号内写图片所在的完整路径(注意路径要用单引号括起来).I代表这个图片灰度值(0~255)组成的二维矩阵。

引申问题出现了,当你需要读不同路径下(比如不同文件夹)里的图片时,你需要不停的更换matlab下的文件路径。尽管我们在代码imread函数中已经写了完整路径。

如图:

matlab读图函数-LMLPHP

当读00_3这个文件夹时,必须将路径手动设置过来,不然会报错,显示imread函数有错,找不到这个图片。

Error using imread (line 372) File "face_0.bmp" does not exist.

所以,当我们要读多个文件夹中的图片时,这个问题就变得麻烦起来。如何做到不用手动更改路径,直接能在代码中运行呢。matlab中有套很变态的机制(我还不知道原理。=。=)

原来是上面的代码是读取matlab自带的图片的,若要读取别的图片,还待更改成:

fileFolder = 'image\';         %文件夹路径

dirOutput = dir(fullfile(strcat(fileFolder,'*.bmp')));    %黏贴函数strcat(括号内用逗号相连要连接的部分),只读取文件夹中bmp图片文件

fileNames = {dirOutput.name}';

numFrames = numel(fileNames);     %计算图片个数

I = imread(strcat(fileFolder,fileNames{1}));   %读图

我经常写成如下形式:

fileFolder = 'D:\program files\matlab\...\';     (最后一个\不要漏掉)
PicFile = dir(fullfile(strcat(fileFolder,'*.png')));

05-11 15:16