在Matlab中将矩阵调整为不同的分辨率

时间:2014-04-30 09:47:19

标签: matlab image-processing resize

我需要在Matlab中将矩阵(无插值)的大小调整为不同的分辨率。下图将突出显示我想要的内容:

enter image description here

Matlab中是否有内置函数?如果没有,那么实现这一结果的好方法是什么?

如果我的问题不够明确,请告诉我。谢谢你的任何帮助=)

3 个答案:

答案 0 :(得分:5)

A = [1 2; 3 4]; %// data
m = 3; %// row repetition factor
n = 3; %// column repetition factor
B = A(ceil(1/m:1/m:size(A,1)), ceil(1/n:1/n:size(A,1)))

答案 1 :(得分:5)

在函数kron()

的形式中有一种简单快捷的方式
>> kron( [1 2; 3 4], ones(1))
ans =
     1     2
     3     4
>> kron( [1 2; 3 4], ones(2))
ans =
     1     1     2     2
     1     1     2     2
     3     3     4     4
     3     3     4     4
>> kron( [1 2; 3 4], ones(3))
ans =
     1     1     1     2     2     2
     1     1     1     2     2     2
     1     1     1     2     2     2
     3     3     3     4     4     4
     3     3     3     4     4     4
     3     3     3     4     4     4

甚至可以拉伸/缩小尺寸

>> kron( [1 2; 3 4], ones(1,2))
ans =
     1     1     2     2
     3     3     4     4

答案 2 :(得分:3)

如果您有图像处理工具箱

可以使用imresize函数来执行此操作

Old=[1,2;3,4]; 
factor=2; % scale factor

New=imresize(Old,factor,'nearest')

New =

     1     1     2     2
     1     1     2     2
     3     3     4     4
     3     3     4     4