新浪博客

MATLAB批量处理图片并保存

2016-07-03 21:26阅读:
本文章为原创,转载请注明出处。MATLAB批量处理图片并保存 今天将写写用MATLAB如何批量的处理图片。因为需要做批量的图像处理,一开始尝试了很多种方法无果后决定一张张处理,但是25帧图像一帧一帧读取运行时间很长,我便使用tic toc函数对。在待测试程序前写tic,在程序结尾写toc,这样就可以自动计时程序运行的时间。时间运行为4秒多。内心崩溃的,我觉得程序代码一定可以不用那么蠢的方法就可以批量读取图片并且一张一张的处理。随后,请教了某姐姐,她推荐用矩阵存储图片,这样我就可以不用一个读取图片像素点,因为矩阵就可以直接读取了。
在网上搜一下,发现MATLAB居然有个cell【】矩阵,网上很多人说这个矩阵比较容易出错,但是实际操作时候,并没有网上说的那么复杂。好了,废话不多说,直接附上代码,跟大家一起分享。


file_path = 'D:\images\';% 图像文件夹路径
img_path_list = dir(strcat(file_path,'*.jpg'));%获取该文件夹中所有jpg格式的图像
img_num = 25;%获取图像总数量
I=cell(1,img_num);%设定一个数组

if img_num > 0 %有满足条件的图像
for i = 1:img_num %逐一读取图像
br>
image_name = img_path_list(i).name;% 图像名
image = imread(strcat(file_path,image_name));
image=double(rgb2gray(image)); %将uint8型转换为double型,否则不能计算统计量
I{i}=image;%其中这个I{i}就表示一个图片就不需要用两个for循环获取图片像素值了

end
。。。。。。。这里就可以放你所需要的做的图像处理了。。。。。。。。。。
imshow(kt);
f=getframe(gcf);%获取当前窗口
imwrite(f.cdata,['D:\after\','1.bmp']);%灰度图像的保存
end

超级好用,运行程序是就变成了一秒。时间大大缩减了,到时候你要处理图片越多就越能发现它的简洁。

我的更多文章

下载客户端阅读体验更佳

APP专享