在特定位置寻找邻居

时间:2012-09-14 07:14:02

标签: matlab image-processing signal-processing

我有一个2D矩阵,我想在这个矩阵中找到(i,j)的邻域,分别在x和y方向上有M和N个尺寸。我知道这很容易,但我的问题是,当(i,j)接近角落时,M和N很大!在这种情况下,我不想超过矩阵。在MATLAB中是否存在针对此问题的任何函数或简单解决方案?

1 个答案:

答案 0 :(得分:5)

如果我理解正确,您希望从矩阵中提取子矩阵,子矩阵居中从行i-Mi+M和列j-Nj+N

如果是这种情况,并且您希望避免选择无效索引,则可以使用最小/最大功能切断选择,例如:

matrix = randi(10,20,15);
siz = size(matrix);

i=2;
j=5;
M=10;
N=3;

selectrows = max(1,i-M):min(siz(1),i+M);
selectcols = max(1,j-N):min(siz(2),j+N);
result = matrix(selectrows, selectcols);