【发布时间】:2015-02-26 10:00:02
【问题描述】:
我想将 image1 的特定区域复制到 image2。为此,我使用以下代码。
for i=1:m
for j=1:n
if(OD(i,j)==0)
result(i,j,1)=Original(i,j,1);
result(i,j,2)=Original(i,j,2);
result(i,j,3)=Original(i,j,3);
end
end
end
这个很好,很好。只是为了减少执行时间,我尝试了以下
for i=1:m
for j=1:n
if(OD(i,j)==0)
result(i,j)=Original(i,j);
end
end
end
这会在结果图像上添加一些不必要的颜色。您可以在此图像中看到粉红色。 还有当我尝试
result(OD==0)=Original;
我收到以下错误。
In an assignment A(:) = B, the number of elements in A and B must be the same.
但结果和原始图像的大小相同。我不明白为什么会这样。谁能告诉我它们之间有什么区别以及为什么输出是这样的。
【问题讨论】:
-
在第二个循环中,为什么不将三个维度都设置为零?
-
你能把
size(Original)的输出贴出来吗?
标签: matlab