最基本的读图函数:imread
imread函数的语法并不难,I=imread('D:\fyc-00_1-005.png');其中括号内写图片所在的完整路径(注意路径要用单引号括起来).I代表这个图片灰度值(0~255)组成的二维矩阵。
引申问题出现了,当你需要读不同路径下(比如不同文件夹)里的图片时,你需要不停的更换matlab下的文件路径。尽管我们在代码imread函数中已经写了完整路径。
如图:
当读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')));