1.文件操作类
1.1 利用对话框选择文件
[f,p] = uigetfile({ '*.bmp'}, 'Select an bmp file'); % 读取bmp文件
%f为文件名称,p文件路径
file_path = [p,f]; %合成目标文件路径
1.2 目录操作
path = 'path'; % 定义路径
if ~exist(path, 'dir') % 判断文件夹是否存在
mkdir(path); % 不存在则创建文件夹
end
1.3 写日志
path_name = 'log.txt';
log_id=fopen(path_name , 'a'); % 'a' 为追加写文件,如果不存在的创建文件
fprintf(log_id,,''); %使用fprintf向log_id文件写入数据
1.4 保存figure图片
% 首先使用figure产生一个图片对话框,然后进行保存操作
figure, plot(); %imshow,mesh,...
file_name = 'save.jpg';
saveas(gcf,file_name); %保存最近一次显示的图片
2. figure图像操作类函数
2.1 画图
plot()
xlim([x1 x2]); % 限定x轴范围
ylim([y1 y2]); % 限定y轴范围
% 颜色设置
% r 红
% g 绿
% b 蓝
% c 蓝绿
% m 紫红
% y 黄
% k 黑
% w 白
figure,mesh(data); % 三维图
2.2 图中取点
figure,imshow(picture); %显示图像
num = 1; %需要取点的数量
[x,y] = ginput(num); %返回点的坐标
2.3 获取图像序列
%定义一个数组来存储图像序列
plot();% imshow,mesh,...
m(i)=getframe; % 每显示一次就存储一次
%存储完成后播放设置
movie(m,1,2); % 每秒2帧,播放一次
%保存为视频文件
v = VideoWriter('newfile2.avi'); % 创建视频文件
open(v); % 打开视频文件
writeVideo(v,m); % 写入文件
3. 图像操作类函数imxxx
3.1 读取图片
path_name = '1.bmp';
Uo = imread(path_name);
3.2 显示图片
%假设待显示的图片为 picture
figure,imshow(picture,[]); %自动归一化调整
figure,imshow(picture,[a,b]); %手动调整
3.3 灰度转换
picture = mat2gray(Image,[a,b]); % 数组转灰度
3.4 保存图像
picture = mat2gray(Image,[a,b]); % 数组转灰度
imwrite(picture ,'1.bmp') %保存图像
4. 频域变换
res = fft(signal); % 一维傅里叶变换
res = ifft(signal); % 一维傅里叶逆变换
res = fft2(signal); % 二维傅里叶变换
res = ifft2(signal);% 二维傅里叶逆变换
res = fft2(signal);
res1 = fftshft(res); % 将零频移到中心
%可对频谱res1进行处理
res2 = ifftshift(res1);% 将将频谱还原,fftshft的逆操作
sig = fft2(res2);
5.数据操作
5.1 数据转换
str_num = num2str(num); % 数字转字符串
num = num2str('123'); % 字符串转数字
5.2 数据取整
round(1.1); % 四舍五入取整
floor(1.1); % 只取整数部分
5.3 保存工作区数据
file_name = 'data.mat';
save(filename,v1,v2,v3); % 后面根任意数量变量
save(filename); % 保存整个工作区变量
load(file_name); %加载变量到工作区
6.矩阵操作
6.1 赋值
A = randn(n,n);
B = 1;
A(find(A>B)) = B; %条件赋值
7.工作区变量
7.1变量的保存与加载
save('filename.mat','var1','var2',...);
load('filename.mat');
8.常用自定义代码块
8.1画圆代码
c = zeros(100,100);
x0 = 50;
y0 = 50;
r = 30;
%计算y值
for x = x0 - r:1:x0 + r
y1 = sqrt(r*r-(x-x0)^2)+y0;
y2 = -sqrt(r*r-(x-x0)^2)+y0;
c(x,round(y1)) = 1;
c(x,round(y2)) = 1;
end
%计算x值
for y = y0 - r:1:y0 + r
x1 = sqrt(r*r-(y-y0)^2)+x0;
x2 = -sqrt(r*r-(y-y0)^2)+x0;
c(round(x1),y) = 1;
c(round(x2),y) = 1;
end
![](https://i-blog.csdnimg.cn/blog_migrate/18b62e3476664376c76f88575cb3957f.jpeg)