-
2016-05-24 11:22:43
一、基本上比较常用的就是自己的图片命名是规律的,这样可以
快速循环处理:
str='D:\'; %我的图像放在D盘,做差文件夹下,好的图像文件夹下
for i=1:12
I=imread([str,num2str(i),'.png']); %依次读取每一幅图像
%在此处进行你的图像处理即可
end
二、在一个文件夹下,利用uigetdir函数得到你所处理图像的路
径,然后进行处理
srcDir=uigetdir('Choose source directory.'); %获得选择的文件夹
cd(srcDir);
allnames=struct2cell(dir('*.bmp')); %只处理8位的bmp文件
[k,len]=size(allnames); %获得bmp文件的个数
for ii=1:len
%逐次取出文件
name=allnames{1,ii};
I=imread(name); %读取文件
%然后在此处添加你的图像处理程序即可
end
三、百度上提供的多张保存
clear;clc;
figure %新建一张图
axis([0 5 0 2])%定义x轴(从0到5)和y轴的范围(从0到2)
for i=1:4
if i==1
text(i,1,'百','fontsize',40,'color','red');%i=1时,写一个‘百’字
end
if i==2
text(i,1,'度','fontsize',40,'color','red');%i=2时,写一个‘度’字
end
if i==3
text(i,1,'经','fontsize',40,'color','red'); %i=3时,写一个‘经’字
end
if i==4
text(i,1,'验','fontsize',40,'color','red');%i=4时,写一个‘验’字
end
picname=[num2str(i) '.fig'];%保存的文件名:如i=1时,picname=1.fig
hold on % 写后面的字时,不把前面的字冲掉
saveas(gcf,picname)
end
更多相关内容 -
Matlab 数字图像处理 for循环处理多张图片
2021-04-18 22:51:51Matlab 数字图像处理 for循环处理多张图片 需求 对文件名b1.tif ; b2.tif ; b3.tif ; b4.tif 进行同一图像处理操作 用for函数循环输出,避免繁琐操作 关键函数 num2str(i) 实现对文件名编号的读入 代码 for i=1...Matlab 数字图像处理 for循环处理多张图片
需求
- 对文件名b1.tif ; b2.tif ; b3.tif ; b4.tif 进行同一图像处理操作
- 用for函数循环输出,避免繁琐操作
关键函数
num2str(i)
实现对文件名编号的读入代码
for i=1:4 image=imread(['b',num2str(i),'.tif']) i1=imnoise(image,'salt & pepper',0.2) i2=medfilt2(i1) i3=medfilt2(i1,'symmetric') figure, subplot(221),imshow(['b',num2str(i),'.tif']) title('x射线图像') subplot(222),imshow(i1) title('被椒盐噪声污染的图像') subplot(223),imshow(i2) title('使用函数medfilt2滤波') subplot(224),imshow(i3) title('symmetric滤波图像') end
输出
- 对文件名b1.tif ; b2.tif ; b3.tif ; b4.tif 进行同一图像处理操作
-
[MATLAB图像处理] 多幅图片处理的循环语句
2021-04-23 13:00:34多幅图片处理的循环语句 小弟毕业设计关于视频去雾处理,将视频截取为图片后对每张图片进行处理,其中需要用到循环语句来减少工作量,但自己对循环语句不怎么会,希望哪位大大能够给予帮助,谢谢了程序如下block_...多幅图片处理的循环语句
小弟毕业设计关于视频去雾处理,将视频截取为图片后对每张图片进行处理,其中需要用到循环语句来减少工作量,但自己对循环语句不怎么会,希望哪位大大能够给予帮助,谢谢了
程序如下
block_size = 15;
infile = '1.jpg';
outfile = '1_1.jpg';
outRTfile = 'test_rawt.bmp';
outTfile = 'test_t.jpg';
outDfile = 'test_d.bmp';
showFigure = 0;
enableSoftMatting = 1;
enableBilateralFilter = 0;
I = imread(infile);
[h,w,z]=size(I);
block_size = round(h/25);
figure, imshow(I);
st=cputime;
[mI, A] = GetTMap(I, block_size);
mI=imresize(mI,[h w]);
et1=cputime - st;
disp(['Get Init Transmission Map : ' num2str(et1) ' seconds.']);
A = double(A)/255.0;
if (showFigure)
figure, imshow(mI);
end
imwrite(mI, outRTfile);
% I = double(imread('test0014-scale.jpg'));
% mI = double(imread('depth0014-scale.bmp'))/255.0;
% mI = rgb2gray(mI);
% figure, imshow(mI);
I=double(I)/255.0;
if(enableSoftMatting)
st=cputime;
softmap = GetSoftTMap(I, mI);
et2=cputime - st;
disp(['Get Soft Transmission Map : ' num2str(et2) ' seconds.']);
else
softmap = mI;
end
% softmap = double(imread(outTfile))/255.0;
% if (size(softmap,3)==3)
% softmap=rgb2gray(softmap);
% end
if(showFigure)
figure, imshow(softmap);
end
if(enableBilateralFilter)
softmap=uint8(softmap*255);
st=cputime;
softmap=bilateralFilter(uint8(softmap),3,20);
et3=cputime - st;
disp(['Bilateral Filter : ' num2str(et3) ' seconds.']);
if(showFigure)
figure, imshow(uint8(softmap));
end
softmap=double(double(softmap)/255.0);
end
imwrite(softmap, outTfile);
st=cputime;
depthMap = GetDepthMap(softmap);
et5=cputime-st;
disp(['Depth Map : ' num2str(et5) ' seconds.']);
if(showFigure)
figure, imshow(depthMap);
end
imwrite(depthMap, outDfile);
st=cputime;
result = GetRecoverMap(I, A, softmap, 0.5);
et4=cputime - st;
disp(['Recover Scene : ' num2str(et4) ' seconds.']);
figure, imshow(result);
imwrite(result, outfile);
不知道循环语句在里面怎么添加的?不胜感激啊
-
MATLAB用循环实现多幅图像处理
2015-04-18 11:21:54采用matlab编程,可实现一次对多幅图像进行灰度化,其他处理同理,改一下处理处的代码即可 -
matlab图像处理掩膜代码-multi_thread_capture:多线程捕获
2021-06-07 20:16:27matlab图像处理掩膜代码 cmake qt capture images 进度 目前正在做融合,处理高动态 框架 dependence cmake qt5 vimba(in dir) yaml-cpp opencv 步骤 拍摄图片(横竖条纹) 标定位置求解投影仪相机位置关系(matlab) ... -
matlab批量读取图片代码-PyTorch-ARCNN:由PyTorch支持的ARCNN测试脚本
2021-05-26 19:56:25matlab批量读取图片代码PyTorch-ARCNN 这是为ARCNN编写的非官方测试专用脚本。 它加载预训练的权重(.m)并在PyTorch中执行。 绝对没有培训功能。 有关详细信息,请访问论文作者的网站:。 这可以作为其他图像处理... -
一、Matlab图像处理入门
2021-08-12 22:14:30Matlab图像处理入门 一、 Matlab图像处理入门 文章目录Matlab图像处理入门今日任务:一、千呼万唤始出来——主角介绍1、初识数字图形处理2、初识MATLAB三、1.引入库2.读入数据总结 今日任务: 调用imread读入...专栏文章目录
一、 Matlab图像处理入门
文章目录
今日任务:
- 调用imread读入一张图片;观察workspace中,内存变量的dimension和数据类型;
- 调用imshow直接显示图像(同时显示R通道、B通道和G通道);
- 对图像的三个通道进行简单平均,得到单通道,并进行显示。
3.1 方法1,逐像素完成,使用两层for循环;
3.2 方法2,直接利用矩阵运算完成;
3.3 测试两种方法的时间。将代码至于tic和toc之间即可1。
一、千呼万唤始出来——主角介绍
1、初识数字图像处理
顾名思义,所谓“数字图像处理”就是对数字图像的相关操作。(权威说法:数字图像处理是指借助于数字计算机来处理数字图像2)。图像是通过视觉传感器把我们的三维世界映射到二维空间的一种载体( p s : ps: ps:映射的过程大量信息会被丢失,所以基于图像输入的三维重建是病态的。相关问题后期我们慢慢讨论),一幅图像可被定义为一个二维函数 f ( x , y ) f(x,y) f(x,y),其中的 x x x和 y y y是空间坐标,一对 ( x , y ) (x,y) (x,y)上面对应的幅值 f f f叫做图像在这一点的强度或灰度。当 x x x、 y y y和 f f f是有限的离散数值的时候,就称这幅图像为数字图像。
2、初识MATLAB
MATLAB:美国人开发的一个十分牛逼的数学软件,主要功能有画图、图形处理、信号分析、无线通信……应用领域十分广泛,除此之外MATLAB内部函数都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理,所以十分高效(如果你写出了效率更高的代替函数,那请收下我的膝盖,绝对是大牛!!!)。而且在其中很多领域的应用都被做成了工具包,可视化成都极高,极大减少了科研周期。且其使用的语言简单易于快速上手。总而言之,是你学习、科研的一大利器!
二、言归正传——快速进入任务
1.软件安装
由于是付费软件,所以基本正规安装渠道就是安装学校或者公司的官方正版软件(按需安装各种工具包,随用随安装),此处不再赘述。
2.开始coding
首先,我们使用imread()函数读入目标图片,并使用imshow()函数显示目标图片。
% 读取原图并显示 Im = imread('1.jpg'); %读入图片(三通道RGB图像) %subplot(4,4,1); %此处是为了后面显示方便,在一个页面中显示$4*4$张图 imshow(Im); title('原图');
看一波效果:
至此,我们完成了任务1的一半:调用imread读入一张图片 以及任务2: 调用imshow直接显示图像。
a.插播一个小技巧
MATLAB之所以广受大家喜爱,主要还在与其友好的让使用者自学的功能设定。看别人代码函数不知道怎么办?不要着急,默默选中该函数,就像下图一样选中 " i m r e a d " "imread" "imread",然后敲击键盘 F 1 F1 F1,查看帮助文档,快速掌握函数用法并且能够查看相关示例。所以MATLAB入门怎么办?看帮助文档!看帮助文档!!看帮助文档!!!
相同的办法,我们再查看 " i m s h o w " "imshow" "imshow"的帮助:
接着我们进行下一步操作:观察workspace中,内存变量的dimension和数据类型。
w o r k s p a c e workspace workspace在这里。目标图像 A A A因为是彩色图像,具有 R R R、 G G G、 B B B三个通道,所以数据大小是“ 373 ∗ 346 ∗ 3 373*346*3 373∗346∗3”的三维矩阵。数据类型是可显示的“ u i n t 8 uint8 uint8”类型。
点击 A A A之后就可以看到矩阵 A A A中的每个具体值。
然后,我们继续完成任务三:对图像的三个通道进行简单平均,得到单通道,并进行显示。共使用两种方法。方法1:直接利用矩阵运算完成:
%方法1:mean函数求平均 tic %R通道 R2 = A(:,:,1); av = mean(R2,'all'); %此处是将二维数组转换成了一维数组,随后求平均 %fprintf('%f\n',av); [r,c] = size(R2); %size分别获取矩阵的行、列数 for i = 1:r for j = 1:c R2(i,j) = av; end end subplot(4,4,10); imshow(R2); title('矩阵平均—R通道'); %G通道 G2 = A(:,:,2); av = mean(G2,'all'); %此处是将二维数组转换成了一维数组,随后求平均 [r,c] = size(G2); %size分别获取矩阵的行、列数 for i = 1:r for j = 1:c G2(i,j) = av; end end subplot(4,4,11); imshow(G2); title('矩阵平均—G通道'); %B通道 B2 = A(:,:,3); av = mean(B2,'all'); %此处是将二维数组转换成了一维数组,随后求平均 [r,c] = size(B2); %size分别获取矩阵的行、列数 for i = 1:r for j = 1:c B2(i,j) = av; end end subplot(4,4,12); imshow(B2); title('矩阵平均—B通道'); toc
方法2:逐像素完成,使用两层for循环:
%方法二:逐像素完成三通道取平均 tic R3 = double(A(:,:,1)); R4 = A(:,:,1); a=0; for i = 1:r for j = 1:c a = a+R3(i,j)/r/c; end end %fprintf('%f\n',a); for i = 1:r for j = 1:c R4(i,j) = a; end end subplot(4,4,14); imshow(R4); title('像素平均—R通道'); a = 0; G3 = double(A(:,:,2)); G4 = A(:,:,2); [r,c] = size(G3); for i = 1:r for j = 1:c a = a+G3(i,j)/(r*c); end end %fprintf('%f\n',a); for i = 1:r for j = 1:c G4(i,j) = a; end end subplot(4,4,15); imshow(G4); title('像素平均—G通道'); a = 0; B3 = double(A(:,:,3)); B4 = A(:,:,3); [r,c] = size(B3); for i = 1:r for j = 1:c a = a+B3(i,j)/(r*c); end end %fprintf('%f\n',a); for i = 1:r for j = 1:c B4(i,j) = a; end end subplot(4,4,16); imshow(B4); title('像素平均—B通道'); toc
上运行结果图:
最后,按照任务要求,我们截取运行时间对比:
至此,今日任务完成!
三、总结(划重点)
1、采用直接提取图像通道的方法,提取出的只是单通道分量,显示的图像为灰度图像:采用将所需通道保留,其余两通道置 0 0 0的方式则可得到三通道图像,此时图像为彩色图像;
Q:在使用mean进行矩阵求平均时不会出现类型不对的问题……
2、直接读取的单通道( e g : R = A ( : , : , 1 ) eg:R = A(:,:,1) eg:R=A(:,:,1))数据类型为 u i n t 8 uint8 uint8,在进行累加时最大不能超过 255 255 255,所以使用遍历矩阵求平均时应当转换成 d o u b l e double double类型进行计算,但是在进行显示的时候会出问题,所以应当对uint8类型的矩阵进行平均值赋值。答:因为内置函数已经进行了相关容错处理。
链接: 完整源码
-
matlab循环输入图像代码-Pixel-Attentional-Gating:像素注意门控以简化每像素标注
2021-05-26 09:42:31matlab循环输入图像代码场景解析的逐像素注意门控 对于和,请参阅我们的 我们的“健壮视觉挑战赛”参赛作品可在此处和找到。 为了在有限的计算预算下实现对每个像素标注任务的简约推理,我们提出了一种像素级注意门... -
MATLAB图像处理实例详解
2021-04-23 12:23:09MATLAB图像处理实例详解作者:杨丹,赵海滨,龙哲出版时间:2013年版内容简介《MATLAB图像处理实例详解》全面、系统地介绍了MATLAB在数字图像处理中的各种技术及应用。本书对图像处理的基础概念做了必要交代,重点给... -
分享一下Matlab数字图像处理的作业-图像处理.rar
2019-08-13 07:51:43分享一下Matlab数字图像处理的作业-图像处理.rar 虽然程序比较简单,但自己作为新手来说也查了很长时间的资料才完成老师的作业,现在贴出来,供大家参考呀,呵呵 实验内容 ⑴在matlab下编程实现直方图均衡化 ⑵... -
中值滤波代码matlab-MATLAB_for_Image_Processing:用于图像处理活动的MATLAB代码
2021-05-27 07:42:19这是用于图像处理活动的MATLAB代码的集合,其范围从简单的事情(例如创建几何图形)到实现图像变换和滤镜。 代码中包含的一些内容是: 中值通过滤波器可消除盐和胡椒粉的噪音 索贝尔过滤器 Prewitts过滤器 罗伯茨... -
MATLAB 将处理得到的矩阵数据,循环写入.xlsx文件
2021-09-01 16:12:47比如:将循环处理的New_RGB值写入到一个新的文件中a.xlsx 代码: % 获取RGB的平均值 clc; close all; tic; % 读取数据 file_path = '.\10X10\ave_blums\';% 图像文件夹路径 img_path_list = dir(s -
matlab如何在while循环中保存每一步循环的图像
2021-01-13 05:45:22本帖最后由 black_angel 于 2015-5-15 14:33 编辑Zhang-Suen的细化算法的matlab程序中,使用了while循环来实现细化,提取骨架。代码如下:clc,clearaddpath('D:\Program files\MATLAB\R2013a\bin\Thinning\Thinning\... -
【MATLAB工具箱集锦】- 医学图像处理工具箱MedicalImageProcessingToolbox.zip
2021-12-07 10:28:396 医学图像处理工具箱 7 人工蜂群工具箱 8 MPT3安装包 9 drEEM toolbox 10 DOMFluor Toolbox v1.7 11 Matlab数学建模工具箱 12 马尔可夫决策过程(MDP)工具箱MDPtoolbox 13 国立SVM工具箱 14 模式识别与机器学习工具... -
matlab从一个文件夹路径循环读取所有图片
2018-04-15 19:32:21用matlab作图像处理时,有时要从某个路径下读取里面的所有图片,下面例子从文件夹“E:\图片\DataSet”读取所有图片。pt = 'E:\图片\DataSet\'; ext = '*.BMP'; dis = dir([pt ext]); nms = {dis.name}; for k = 1:1... -
基于MATLAB的数字图像处理-图像进行灰度化
2022-02-17 10:03:21一、要求 ... 对上述低照度图像进行灰度化,计算并显示以上低照度图像的灰度直方图和离散傅里叶变换...调用 MATLAB 库函数 rgb2gray 将图像灰度化 调用自己实现的 my_imhist 统计每种灰度值出现的次数,并返回概率质量 -
matlab循环生成矩阵
2021-04-21 06:26:41MATLAB 的矩阵求值的循环语句?clc;clearall;closeall;t0=[11];a=[12;34]t=t0;t(1,:)=t0'\an=10;fori=2:nt(i,:)=t(i-1,:)'\a;endtmatlab 中的核矩阵for循环问题A(i,:)-A(j,:)表示A矩阵的第i行减去第j行,得到的是一个... -
基于MATLAB图像处理
2021-08-25 12:01:03基于MATLAB图像处理设计题目 图片叠加。设计要求 将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。设计方案3.1、设计思路 利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素... -
MATLAB创建无限循环的GIF动图(含程序源码).rar
2022-03-11 14:33:01【资源内容】:MATLAB创建无限循环的GIF动图 【代码特点】:参数化编程、参数可方便更改、代码编程思路清晰、注释明细 【适用对象】:工科生、数学专业、信号处理专业学生等 -
matlab批量处理excel数据,绘图并保存
2021-04-18 08:19:10按文件名循环处理数据,每个文件处理流程如下3.1 根据数据标识去除无效数据 3.2 读取待处理数据,存入二维数组3.3 数据运算,绘图3.4 新建文件夹dat_image,以文件名变量命名另存图片,效果如下 代码实现... -
《MATLAB图像处理超级学习手册》一一2.9 MATLAB程序设计
2021-04-26 16:14:042.9 MATLAB程序设计MATLAB图像处理超级学习手册在MATLAB中,提供了很多程序流程控制语句,如数据的输入输出、顺序结构、判断语句、分支语句、循环语句以及其他流程控制函数。2.9.1 数据的输入和输出MATL... -
Matlab数字图像处理——图像增强
2020-04-05 20:19:52图像增强的介绍 -
MATLAB图像处理——矩阵操作
2022-03-04 20:05:47编写一个程序m文件,用于构建和显示包含大小为c×c像素的白色正方形的图像,该程序自动以大小为N x N像素(N = 256)的黑色背景为中心 由图像知识可知,像素值可取0~255之间,0为黑,255为白 代码如下: a = ... -
实验一 MATLAB数字图像处理基本操作
2021-12-03 20:09:12河北工业大学计算机图像处理实验 实验一 MATLAB数字图像处理基本操作(自学) -
matlab循环读取文件
2020-05-22 17:06:00Matlab如何循环读取文件转载http://www.cnblogs.com/woshitianma/p/3724922.html第一种方法①List =dir('*.jpg');第二种方法②I=ones(8,5);第三种方法③ 转载http://www.cnblogs.com/woshitianma/p/3724922.html ... -
【MATLAB工具箱集锦】- 图像分割graphcut工具箱.zip
2021-12-07 10:28:416 医学图像处理工具箱 7 人工蜂群工具箱 8 MPT3安装包 9 drEEM toolbox 10 DOMFluor Toolbox v1.7 11 Matlab数学建模工具箱 12 马尔可夫决策过程(MDP)工具箱MDPtoolbox 13 国立SVM工具箱 14 模式识别与机器学习工具... -
matlab开发-最小距离点之间的循环
2019-08-25 03:53:01matlab开发-最小距离点之间的循环。此函数使用距离公式查找点之间的最小距离循环。 -
【数字图像处理笔记(一)】如何提高Matlab图像处理运算的速度?
2020-07-10 21:13:38一. 预先分配内存 即预先分配要存储数据的空间,比如说提前创建0元素数组 ...向量化运算意味着简单地将for循环和while循环转换为同样作用的向量或矩阵运算.. -
获取嵌套循环计数器:一个用于打印嵌套循环计数器的小程序-matlab开发
2021-06-01 13:19:04我在做图像处理的时候,需要打印出图像点相关的坐标(对应内循环计数器和外循环计数器) 如何定义一个可以顺序存储每个循环的计数器的矩阵L有点棘手,即L的计数器的定义(由内外循环计数器组成的变量表示)并不像1 ...