histeq(image, num) 该函数可以将输入的图片按灰度级分为num份,使得每份所占的比例近似相等。
f = imread('timg.jpg');
f = rgb2gray(f);
g = histeq(f, 5);
t = imhist(g, 5);
bar(t); figure, imshow(g);
adapthisteq(image) 将图像对比度增强
g = adapthisteq(f);
imfilter(image, mod) 线性滤波
可选参数为三个,分别是滤波模式、边界选项、大小选项
滤波模式: ‘corr’ ‘conv’
边界选项: P ‘replicate’ ‘symmetric’ ‘circular’
大小选项: ‘full’ ‘same’
w = [1 2 3;4 5 6;7 8 9];
g = imfilter(f, w);
下面代码可以感受到线性滤波的效果
% 创建测试图像
f = zeros(500);
f(250:500, 1:250)=1;
f(1:250, 250:500)=1;
imwrite(f, 'temp.bmp'); % 保存测试图片
g = imfilter(f / 50 / 50, ones(50)); figure, imshow(g);title('none');
g = imfilter(f / 50 / 50, ones(50), 'replicate'); figure, imshow(g);title('replicate');
g = imfilter(f / 50 / 50, ones(50), 'circular'); figure, imshow(g);title('circular');
g = imfilter(f / 50 / 50, ones(50), 'symmetric'); figure, imshow(g);title('symmetric');
prod(A, n) 返回传入参数的乘积 (默认n为1[不写即为1])
此函数有3种常用情况
* 当传入参数为一维数组(只有一行/一列)时,传出为元素的乘积
prod([1 2 3 4 5]) % 返回 120
- 当传入参数为二维数组时,传出为每列的乘积
prod([1 2;3 4]) % 返回3 8
- 当传入参数为一个二维数组和一个数(代表维度),则会返回以这个维度为基准的每维的乘积
prod([1 2; 3 4], 2) % 返回 2 12
padarray(A, [x, y], method, direction) 填充数组,第一个参数为要填充的数组,x表示在x轴,要填充几个,y表示在y轴要填充几个,method(方法)有四种情况(书上有三种- -),direction(方向)也有三种情况
方法: P ‘replicate’ ‘symmetric’ ‘circular’
方向: ‘pre’ ‘post’ ‘both’
padarray([1 2; 3 4], [3 2], 'post')
padarray([1 2; 3 4], [3 2], 'pre')
padarray([1 2; 3 4], [3 2], 'both')
padarray([1 2; 3 4], [3 2], 5, 'post')
padarray([1 2; 3 4], [3 2], 5, 'pre')
padarray([1 2; 3 4], [3 2], 5, 'both')
padarray([1 2; 3 4], [3 2], 'replicate', 'post')
padarray([1 2; 3 4], [3 2], 'replicate', 'pre')
padarray([1 2; 3 4], [3 2], 'replicate', 'both')
padarray([1 2; 3 4], [3 2], 'symmetric', 'post')
padarray([1 2; 3 4], [3 2], 'symmetric', 'pre')
padarray([1 2; 3 4], [3 2], 'symmetric', 'both')
padarray([1 2; 3 4], [3 2], 'circular', 'post')
padarray([1 2; 3 4], [3 2], 'circular', 'pre')
padarray([1 2; 3 4], [3 2], 'circular', 'both')