0

我试图在不使用插值技术的情况下进行缩放,这样我必须:

  1. 将图像尺寸缩小 2
  2. 仅显示奇数行和列,我将矩阵的大小减小到一半(矩阵 C)

我已经使用以下代码完成了所有这一切:

A = imread ('image.jpg'); 
    [M, N, L] = size(A);
    C = zeros(M/2, N/2, L);
    j = M;
    for x = 1: 1: M/2
        for y = 1: 1 : N/2
            for z = 1: 1: L
                C(x,y,z) = A(((x*2)-1),((y*2)-1),z);
            end
        end
    end

    C = uint8(C);
    figure
    image(C);

但是知道为了填补空白并进行数字缩放,我需要使用奇数相邻行(和列)的总和来填补所有空白

脚步:

  1. 原始行 [1,1][1,2][1,3]
  2. 在代码 [1,1][0,0][1,3] 之后
  3. 数码变焦后 [1,1][([1,1]+[1,3])/2][1,3]

这样,我平均奇数行的两侧,彼此相邻并将它们除以 2,通过留下相邻向量的平均总和,我应该能够进行放大,但是我还没有找到执行步骤 3在我自己的代码中,通过获取矩阵的每个元素(索引)并且在此过程中不丢失它们

非常感谢任何帮助

4

1 回答 1

0

如果您的意思是说您需要修改图像数据但不能丢失原始值,那么您只需创建一个新的临时变量,将其初始化为原始图像的副本。然后使用原始图像中的数据计算新值,但在新的临时变量中更新它们。完成该过程后,您可以用临时变量替换原始图像。

于 2015-10-16T10:40:04.127 回答