Matlab滤波器矩阵

阿尔特姆

我的数据矩阵很大:像180:3000大小一样。每个元素的值都在0到255之间;

我必须在此矩阵中找到平均值高于某个阈值(称为“ P”)的区域。并将这些区域中的每个元素重置为“ 0”。另一个词过滤我的矩阵。

我有过滤器区域的宽度和高度。因此,我需要遍历数据矩阵以找到适当的区域(尽可能多的区域)。

编辑:

请看一个例​​子:

4   6   7   5   6   6   7
10  8   9   8   9   10  9
10  8   9   8   9   10  9
7   4   6   9   7   8   7
4   5   5   5   5   5   5
4   5   5   5   5   5   5
10  12  12  12  13  10  11
14  15  15  16  14  15  15
13  15  15  15  14  14  13

给定矩阵。让我们尝试查找平均值大于15的区域(2、3)。

因此结果将是:

4   6   7   5   6   6   7
10  8   9   8   9   10  9
10  8   9   8   9   10  9
7   4   6   9   7   8   7
4   5   5   5   5   5   5
4   5   5   5   5   5   5
10  12  12  12  13  10  11
14  0   0   0   14  15  15
13  0   0   0   14  14  13

请看矩阵的底部

请给我一些提示,如何进行循环抛出。

非常感谢你。

马辛

一种解决方法如下:

% example A with more areas of mean greater than 15
% there are four such areas as shown here: http://i.imgur.com/V6m0NfL.jpg
A = [16   16   16   5   16   16   16
16  16   16   8   16   16  16
10  8   9   8   9   10  9
7   4   6   9   7   8   7
4   5  15.1   15   15   5   5
4   5   15   15   15   5   5
10  12  12  12  13  10  11
14  15  15  16  14  15  15
13  15  15  15  14  14  13];



% filter size
[n,m] = deal(2,3);

% filter center
center = floor(([n,m]+1)/2);

% find where we have areas greater than 15
B = nlfilter(A, [n,m], @(b) mean(b(:)) > 15);


% get coordinates of areas with mean > 15
[rows,cols] = find(B);


% zero out elements in all found areas
for i = 1:size(rows,1)

    % calculate starting coordinates for the area to be set to 0
    row = rows(i) - center(1) + 1;
    col = cols(i) - center(2) + 1;

    A(row:row+n-1 , col:col+m-1) = 0;
end

结果是:

A =

     0     0     0     5     0     0     0
     0     0     0     8     0     0     0
    10     8     9     8     9    10     9
     7     4     6     9     7     8     7
     4     5     0     0     0     5     5
     4     5     0     0     0     5     5
    10    12    12    12    13    10    11
    14     0     0     0    14    15    15
    13     0     0     0    14    14    13

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matlab FIR滤波器

来自分类Dev

高通滤波器Matlab

来自分类Dev

平均滤波器Matlab

来自分类Dev

Matlab中高斯滤波器的导数

来自分类Dev

超低频滤波器MATLAB

来自分类Dev

使用fft的Matlab低通滤波器

来自分类Dev

在MATLAB中实现均值滤波器

来自分类Dev

Matlab中滤波器的逆FT

来自分类Dev

Matlab中的FIR滤波器

来自分类Dev

Matlab中的滤波器系数

来自分类Dev

Matlab:卡尔曼滤波器-如何减轻警告:矩阵奇异或缩放不正确

来自分类Dev

在Matlab中将朴素逆滤波器与维纳滤波器进行反卷积比较

来自分类Dev

适用于大型矩阵的模式滤波器

来自分类Dev

C中的Gabor滤波器卷积矩阵

来自分类Dev

卡尔曼滤波器矩阵尺寸不匹配

来自分类Dev

使用 Matlab 从滤波器设计器接收相同的系数

来自分类Dev

MATLAB中的低通滤波器返回NaN值

来自分类Dev

Matlab-在系统上使用低通滤波器

来自分类Dev

在Matlab中计算FIR滤波器的系数

来自分类Dev

Matlab带通滤波器不起作用

来自分类Dev

在MATLAB中的**任意**位置提取IIR滤波器状态

来自分类Dev

在Matlab中设计一个低通滤波器

来自分类Dev

如何在MATLAB中设计窄带截止滤波器

来自分类Dev

通过MATLAB中的逆滤波器问题重建图像

来自分类Dev

如何在matlab中将图像与内核/滤波器相乘

来自分类Dev

python中的Matlab卡尔曼滤波器

来自分类Dev

使用MATLAB中的系数在C ++中进行FIR滤波器设计,滤波器未给出正确的结果

来自分类Dev

在MATLAB中使用自回归(AR)滤波器对某些随机信号进行滤波

来自分类Dev

定向gabor滤波器的盒式滤波器近似