0

我正在尝试编写一个 matlab 代码,它将图像的一个片段复制到具有特定范围矩阵的另一个片段中。我的代码按要求工作。我遇到的唯一问题是我想为复制的图像部分分配 255 值,以便图像出现在白色背景而不是黑色背景上

a=imread('/Applications/MATLAB_R2015a.app/toolbox/images/imdata/cameraman.tif');
    a=double(a);
    b=zeros(256,256);
    for i =0:1:255
        for j=0:1:255
        if((i>=97 && i<=150)&&(j>=34 && j<=81))
        b(j,i)=a(j,i);
    %    else
    %         b(j,i)=255;
        end
        end
    end
    imshow(a,[]);
    figure,imshow(b,[]);
    imageSegmenter(b);
4

1 回答 1

1

而不是初始化矩阵以zeros简单地将其初始化为255.

b = 255 + zeros(256, 256);

作为旁注,MATLAB 使用基于 1 的索引,因此您应该更改for循环索引以反映:

for i = 1:size(b,2)
    for j = 1:size(b, 1)
        % Do stuff
    end
end

更好的是,您可以完全删除for循环。

b = 255 + zeros(256, 256);
b(34:81, 97:150) = a;
于 2016-05-22T17:35:17.010 回答