matlab知识总结

基础知识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
%读取
imread();
%显示
imshow();
%写入
imwrite();
%转化为灰度图像
rgb2gray();
%裁剪
imresize(Img,[size,size]);
%创建窗口显示
figure();
subplot(cloum,row,num);
title('note');
%操作快捷键
%多行注释 Ctrl+R
%消除注释 Ctrl+T
%matlab按列优先存储
%从1开始

基本函数

disp();
1
2
3
%disp函数:显示文本或数组
%用法说明:disp(X) 函数显示指定的文本或数组。如果参量是数组,则显示数组的内容;如果参量是字符串,则显示字符串文本的内容
disp();
strcat();
1
2
3
4
5
6
7
8
9
先明白strcat函数的定义:
定义
strcat 即 Strings Catenate,横向连接字符串。
语法
combinedStr= strcat(s1, s2, ..., sN)
描述
将数组 s1,s2,...,sN 水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是元胞数组,那么结果 combinedStr 是一个元胞数组,否则,combinedStr是一个字符数组。

其实它的作用很简单就是将多个字符连接成单个字符串,关键在于这个语句中括号里面的内容。
dir();
1
2
3
4
5
dir name  (或者 dir(name)) %returns a list of files and folders that match the string name;返回指定路径name所有文件及文件夹组成的列表;

listing = dir(name)    % returns attributes about name;返回指定路径name属性的结构体类型的数组。即数组中每一个元素以结构体类型存储着每个子文件的信息。注意必须赋予变量。
%批量读取照片 返回数组
img_list=dir(strcat(src_path,'*.jpg'));
length();
1
2
3
1length函数:计算向量或矩阵的长度
2、用法说明
y = length(x) 函数计算指定向量或矩阵的长度y。如果参数变量x是向量,则返回其长度;如果参数变量是非空矩阵,则length(x)与max(size(x))等价
sort();
1
2
3
4
5
6
7
    Y = sort(X,DIM,MODE)
    has two optional parameters.  
    DIM selects a dimension along which to sort.%指定对哪个维度进行排序
    MODE selects the direction of the sort. %指定是升序还是降序
       'ascend' results in ascending order
       'descend' results in descending order
    The result is in Y which has the same shape and type as X.%返回结果的shape和类型与输入一致
zero();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
zeros函数——生成零矩阵

zeros的使用方法】

B=zeros(n):生成n×n全零阵。

B=zeros(m,n):生成m×n全零阵。

B=zeros([m n]):生成m×n全零阵。

B=zeros(d1,d2,d3……):生成d1×d2×d3×……全零阵或数组。

B=zeros([d1 d2 d3……]):生成d1×d2×d3×……全零阵或数组。

B=zeros(size(A)):生成与矩阵A相同大小的全零阵。
imshit() 直方图的显示
imcomplement() 取反
histeq() 使用直方图均衡
imadjust() 图像灰度调整
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
在MATLAB中,通过函数imadjust()进行图像灰度的调整,该函数调用格式如下:

J=imadjust( I )  对图像I进行灰度调整

J=imadjust( I,[low_in;high_in],[low_out;high_out]) [low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]为变换后的灰度范围

J=imadjust( I,[low_in;high_in],[low_out;high_out],gamma)  该gamma参数为映射的方式,默认值为1,即线性映射。当gamma不等于1时为非线性映射

RGB2=imadjust(RGB1,......) 该函数对彩色图像的RGB1进行调整

close all;clear all;clc;
%通过imadjust()函数调整灰度图像的灰度范围
I=imread('F:/paohui.jpg');
J=imadjust(I,[0.2 0.5],[0 1]); %调整灰度范围
figure;
subplot(121),imshow(uint8(I));
subplot(122),imshow(uint8(J));
在程序中通过函数imadjust()调整灰度图像的灰度范围。原图像灰度范围为0-255,程序将小于255×0.2的灰度值设置为0,将大于255×0.5的灰度值设置为255。程序运行后输出如下:
uint8()
1
2
3
4
5
matlab中uint16的范围是0-65535,uint8的范围是0-255
matlab提供强制转换为uint8的函数即uint8(number)。

但这个函数的做法是把大于255的数全部强制置为255,而小于255的部分则保持原样不变。
若希望将0-65535的灰度级映射到0-255上,则可采用以下的办法:
mat2gray()
1
2
3
4
5
mat2gray   把一个double类的任意数组转换成值范围在[0,1]的归一化double类数组
mat2gray

功能:将矩阵转化为灰度图像。
用法:I = mat2gray(A,[amin amax]) 把一个double类的任意数组转换成取值范围为[0 1]的亮度图像。其中图像I的取值范围也在0(黑色)到1(白色)之间。参数amin和amax表示将A中小于amin的值转换为0,将A中大于amax的值转换为1。I = mat2gray(A) 将矩阵A中实际最小值和最大值分别赋给amin和amax。
im2uint8()
1
im2uint8,函数名称,把图像数据类型转换为无符号八位整型。如果输入图像是无符号八位整型的,返回的图像和源图像相同。如果源图像不是无符号八位整型的,该函数将返回和源图像相同但数据类型为uint8的图像(必要时对图像进行调整
dftfilt()
1
2
3
4
5
6
7
8
9
10
function g = dftfilt(f,H)
% 此函数可接受输入图像和一个滤波函数,可处理所有的
% 滤波细节并输出经滤波和剪切后的图像
% 将此.m文件保存在一个文件夹
% file->set path->add with subfolder
% 将你函数所在文件夹添加到搜索路径
% save就可以将其添加到你的函数库了
F=fft2(f,size(H,1),size(H,2));
g=real(ifft2(H.*F));
g=g(1:size(f,1),1:size(f,2));