【图像处理】Matlab使用技巧

这里整理下matlab的使用技巧,不定期更新。

1、二维矩阵的取值

  • A(x,y) 表示二维矩阵第 x 行第 y 列位置的元素,当 x 为 : 时则表示所有的行。
>> A = [ 1,2,3; 4,5,6; 7,8,9 ]; 
>> A(2,1)
ans =
     4
>> A(:,1)
ans =
     1
     4
     7
>> A(1,:)
ans =
     1     2     3   

2、求矩阵的均值

若要求整个矩阵的均值,则为 mean( mean(X) )

>>mean(mean(X))

也可使用mean2函数:

>>mean2(X)

3、求矩阵的均方差

若要求整个矩阵所有元素的均方差,则要使用std2函数:

>>std2(X) 

4、对于图片边界的处理

通常我们有两种方式:
1)忽略图片边界。
2)扩张图片边界,特别是在边界部分比较大的情况下。
为什么会产生边界?图像与滤波器进行卷积时,通常处理的是中心点的像素值,因此在图像边界部分的像素就无法被覆盖。

扩充边界

% len 为滤波器的半径;
% 'symmetric'表示扩充的部分采用镜像的方式扩充
% 'both'表示图像四周都进行扩充,即图像处于中心。
% 具体可参考 help padarray
newImg = padarray(img,[len len],'symmetric','both');

在完成卷积操作之后,需要对操作后的数据进行修剪

% newImg 表示待操作的数据,需要修剪的图片。
% 后一个参数表示:[起点坐标X,起点坐标Y,宽度,长度]
% 具体可参考 help imcrop
RGB1=imcrop(newImg,[1+len,1+len,n-len*2,m-len*2]);

5、求矩阵内的最大值及最小值

max(Matrix) %这个会给出每一列的最大值。 
max(Matrix(:)) 
min(Matrix(:))

6、最大值滤波,最小值滤波

可以用ordfilt2函数

% 3×3的中值滤波
Y=ordfilt2(X,5,ones(3,3))
% 3×3的最小值滤波
Y=ordfilt2(X,1,ones(3,3))
% 3×3的最大值滤波
Y=ordfilt2(X,9,ones(3,3))
% 输出的是每个像素的东、西、南、北四个方向相邻像素灰度的最小值。
Y=ordfilt2(X,1,[0 1 0;1 0 1;0 1 0])
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值