我正在尝试编写一个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);
答案 0 :(得分: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;