【3.10】matlab中批量读取图像

1. 指定路径下 单个文件夹data中所有图像

file_path = ‘.\data\‘;% 图像文件夹路径
img_path_list = dir(strcat(file_path,‘*.jpg‘));%获取该文件夹中所有jpg格式的图像
img_num = length(img_path_list);%获取图像总数量
if img_num > 0 %有满足条件的图像
for j = 1:img_num %逐一读取图像
image_name = img_path_list(j).name;% 图像名
image = imread(strcat(file_path,image_name));
fprintf(‘%d %d %s\n‘,i,j,strcat(file_path,image_name));% 显示正在处理的图像名
%图像处理过程 省略
end
end

  注,上述的代码只能读取data文件夹中的图像,假设data中包含子文件夹,不能读取子文件夹中的图像。

2. 指定路径下 多个文件夹中所有图像,该代码可以读取文件夹data中及data的所有子文件夹中的图像。

p = genpath(‘.\data‘);% 获得文件夹data下所有子文件的路径,这些路径存在字符串p中,以‘;‘分割
length_p = size(p,2);%字符串p的长度
path = {};%建立一个单元数组,数组的每个单元中包含一个目录
temp = [];
for i = 1:length_p %寻找分割符‘;‘,一旦找到,则将路径temp写入path数组中
if p(i) ~= ‘;‘
temp = [temp p(i)];
else
temp = [temp ‘\‘]; %在路径的最后加入 ‘\‘
path = [path ; temp];
temp = [];
end
end
clear p length_p temp;
%至此获得data文件夹及其所有子文件夹(及子文件夹的子文件夹)的路径,存于数组path中。
%下面是逐一文件夹中读取图像
file_num = size(path,1);% 子文件夹的个数
for i = 1:file_num
file_path = path{i}; % 图像文件夹路径
img_path_list = dir(strcat(file_path,‘*.jpg‘));
img_num = length(img_path_list); %该文件夹中图像数量
if img_num > 0
for j = 1:img_num
image_name = img_path_list(j).name;% 图像名
image = imread(strcat(file_path,image_name));
fprintf(‘%d %d %s\n‘,i,j,strcat(file_path,image_name));% 显示正在处理的路径和图像名
%图像处理过程 省略
end
end
end

原文:http://blog.csdn.net/haizimin/article/details/39646595

时间: 2024-11-08 01:18:02

【3.10】matlab中批量读取图像的相关文章

matlab 图片批量读取

1. 指定的路径 单目录data所有图片 file_path = '.\data\';% 图片目录路径 img_path_list = dir(strcat(file_path,'*.jpg'));%获取该目录中全部jpg格式的图像 img_num = length(img_path_list);%获取图像总数量 if img_num > 0 %有满足条件的图像 for j = 1:img_num %逐一读取图像 image_name = img_path_list(j).name;% 图像名

关于MATLAB中imagesc函数图像保存的问题

这几天我在搞用contourlet变换来做图像融合. 期间,遇到了一个问题,就是将得到的多层矩阵用contourlet反变换后,得到的不是一个正规的图片矩阵,就是每个像素点灰度值大小都在0~255之间,这个矩阵像素点的灰度值有的大于了255,有的小于了0.当直接用imshow()函数来显示这个矩阵的时候,在figure窗口中画出来的完全不是一张正常图片,而是白白的一片,底部有些黑色的东西. 我查看了contourlet工具包里的各种文档说明,参考工具包里的demo程序,使用imagesc(I,[

Matlab中如何读取.dat文件

处理movielens1M数据集 中间有个双冒号,直接用load的只读取第一列,这时候我们可以用dlmread(中间是l不是i),如下图,只需要提取1 3 5列就好了.

matlab中的数据图像拟合

1.需要给x,y赋一样多个数的值 2.点击右下角的start->toolbox->curve fitting->curve fitting tool 3.点击data,选择数据x,y,然后输入data set name,点击create即可,退出 4,然后点击fitting ->new fit ,选择polynomial中的拟合次数,次数越高,越贴近数据 然后点击apply即可

OpenCV图像编程实例系列-图像文件批量读取

本博文摘录<OpenCV图像处理编程实例>2.4章节,更详细的内容请参考本书.图书购买地址: 当当:http://product.dangdang.com/23956649.html 京东:http://item.jd.com/11929148.html 2.4.6 图像批量读取——规则 在进行图片序列处理时,我们常常需要读取文件夹下的每一个图片,然后再进行分析处理,因此需要对文件名连续及无规则情况分开讨论.对于文件名连续的情况,文件读取就简单得多,可以利用sprintf函数实现在窗口中连续读

使用matlab批量处理图像后在指定文件夹存储

使用matlab批量处理图像后在指定文件夹存储 clear;clc;close all; Files=dir('D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\*.jpg'); N=length(Files); Names={}; Images={}; for k=1:N Names{k}=Files(k).name; Images{k}=imread(['D:\文件及下载相关\文档\MATLAB\postgraduate\Kodak\' Names{k}]);

Matlab在读取图像时怎么实现手动选择图像

平时看的一些关于图像处理的文献通常要在matlab里面写一下,以便加深对这个算法的理解,当然写好以后需要图像来测试,以前我常常在 path='图像所在的路径'; img=imread(path+图像的名字); 在imread函数中进行不断修改图像的名字,以便测试不同的图像对于该算法的效果如何. 想必大家也是常常这样做实验吧,今天突然想,这样一直改名字多麻烦多浪费时间,我觉得像Matlab这么强大的软件肯定提供这样的函数给用户,因为每个软件都要考虑用户体验的哈! 在网上搜了很久没找到非常好的答案,

matlab文件读写处理实例(二)——textread批量读取文件

问题:对文件夹下所有文件进行批量读取,跳过文件头部分,读取每个文件数据部分的7,8,9列,保存到变量并且输出到文件. 数据: 文件夹11m\  单个文件格式: DAV1                                                        MARKER NAME66010M001                                                   MARKER NUMBER     7    PR    TD    HR  

matlab中用来批量读取的dir函数

Matlab使用dir函数获得指定文件夹下的所有子文件夹和文件,并存放在在一种为文件结构体数组中. dir函数可以有调用方式dir('.') 列出当前目录下所有子文件夹和文件dir('G:\Matlab') 列出指定目录下所有子文件夹和文件dir('*.m') 列出当前目录下符合正则表达式的文件夹和文件 得到的为结构体数组每个元素都是如下形式的结构体 name -- filename date -- modification date bytes -- number of bytes alloc