您的位置:首页 > 编程语言 > MATLAB

MATLAB学习笔记 函数记录(三)

2017-06-12 21:25 323 查看

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')


最后 symmetric 就是镜像复制, replicate就是直接复制边界, circular就是周期复制,post就是在每个维度后面填充, pre就是在前面, both就是post+pre。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: