许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB基础使用教程:从启动到脚本编写

MATLAB基础使用教程:从启动到脚本编写

阅读数 19
点赞 0
article_banner

我本意并不想搞matlab的,但是代码中涉及一部分使用matlab写的,只能学习一下和这段代码相关的语法啦


input_folder    = 'GT';

kerneltype = {'g','m','d'};

original_ext    = {'*.png'};
target_ext      = '.png';

images          = [];

for ii = 1:length(original_ext)
    images = [images; dir(fullfile(input_folder, original_ext{ii}))];
end

for sf = 2:4
    for kn = 1:3
        output_folder   = ['x',num2str(sf),'_',kerneltype{kn}];
        
        if isdir(output_folder) == 0
            mkdir(output_folder);
        end
        disp([sf,kn]);
        for ii = 1:numel(images)
            [~, name, exte] = fileparts(images(ii).name);
            I   =   imread(fullfile(input_folder,images(ii).name) ) ;
            % I = modcrop(I,lcm(16,3));
            I = imresize(I, 1/sf, 'bicubic');  % 插值的方式
            currentkernels = dir(fullfile('the_kernels',[kerneltype{kn},'*.mat']));
            for currentkn = 1:length(currentkernels)
                [~, kname, kexte] = fileparts(currentkernels(currentkn).name);
                ckernel = load(fullfile('the_kernels',currentkernels(currentkn).name));
                kernel = ckernel.kernel;
                LR = imfilter(im2double(I), kernel, 'circular', 'conv');
                imwrite(LR, fullfile(output_folder,[name,'_',kname,target_ext]));
                save(fullfile(output_folder,[name,'_',kname,'.mat']),'kernel')
            end
        end
    end
end

kerneltype = {'g','m','d'};  
相当于是定义了一个列表,可以通过kerneltype{1}访问元素值,返回的是g, 注意索引是从1开始的。


original_ext    = {'*.png'};
disp("-----" + length(original_ext));  % 输出 1 返回的是元素的{} 中元素的个数


num2str(2)  % 是建整数类型的数转换成字符串类型

for循环: 赋值符号的右边是一个可迭代的对象
for sf = 2:4  
	sf  
end
上面的for循环也可以写成:
for sf = [2,3,4]
    sf	
end


disp() 是在命令窗口输出


fullfile()  % 该函数是用于构成地址字符串的,类似python中的os.path.join函数的用法
f = fullfile(‘dir1’, ‘dir2’, …, ‘filename’) %fullfile构成地址字符串;
如:输入:f = fullfile(‘C:’,’Applications’,’matlab’,’fun.m’)
得到:f =C:\Applications\matlab\fun.m

dir()
matlab中使用dir()函数获得指定文件夹下的所有子文件夹和文件,并存放在一种文件结构体数组中。
dir()函数的调用方式有三种,分别为:
1、dir('.')  列出当前目录下所有子文件夹和文件
2、dir('E:\Matlab')  列出指定目录下所有子文件夹和文件
3、dir(E:\Matlab,'*.bmp')  列出指定目录下后缀为.bmp的文件

 LR = imfilter(im2double(I), kernel, 'circular', 'conv');
功能:对任意类型数组或多维图像进行滤波。
用法:B = imfilter(A,H)
   B = imfilter(A,H,option1,option2,…)
   或写作g = imfilter(f, w, filtering_mode, boundary_options, size_options)
其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。
boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。

fileparts() 是解析文件的完成路径
>> [a,b,c]=fileparts('C:\Documents and Settings\Administrator\桌面\121.jpg')
a =
C:\Documents and Settings\Administrator\桌面
b =
121
c =
.jpg


load() 函数的使用
Load 命令
  命令                                                 功能 
  load Filename                                 将名为Filename的MAT文件中的所有变量加载到工作空间中
  load Filename x y z                         将名为Filename的MAT文件中的x、y、z等指定变量加载到工作空间中
  load Filename -regexp pat1 pat2    将名为Filename的MAT文件中符合表达式要求的变量加载到工作空间中
  load Filename x y z  -ASCII             将名为Filename的8位ASCII文件中的x、y、z等指定变量加载到工作空间中

参考:
https://blog. csdn .net/zhyoulun/article/details/78606382 # for循环

https://blog.csdn.net/rushkid02/article/details/7929189 # disp 命令 窗口输出

   https://blog.csdn.net/qq_35318838/article/details/78780412

https://blog.csdn.net/loadqian/article/details/80656453 # fullfile的用法

https://blog.csdn.net/nuc_jingzhi/article/details/77447607 # dir() 函数的用法

   https://blog.csdn.net/newcloudtech/article/details/12146111

   https://blog.csdn.net/qq_18343569/article/details/50960254

https://blog.csdn.net/zhuwei0710/article/details/68169317 # imfilter 滤波

   https://blog.csdn.net/u010703122/article/details/49254665 # imfilter 的 实例

   https://blog.csdn.net/u010159842/article/details/52523520 # im2double使用

https://blog.csdn.net/SMF0504/article/details/70213871 # fileparts 解析文件的路径

   https://blog.csdn.net/SMF0504/article/details/51789984

https://blog.csdn.net/skyxmstar/article/details/72626835 # load() 函数的使用

   https://blog.csdn.net/lmj1436140682/article/details/52821605

   https://blog.csdn.net/xuxinrk/article/details/80212619

https://blog.csdn.net/what_lei/article/details/49000165 # numel()函数的使用

   https://blog.csdn.net/learngis/article/details/4342155

https://blog.csdn.net/CV_YOU/article/details/52873666 # matlab中(),[],与{}的区别认识


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空