Я хочу скопировать конкретную область изображения1 в image2. Для этого я использую следующий код.Копирование цветного изображения в MATLAB
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.
Но оба результата и оригинальные изображения одинакового размера. Я не понимаю, почему это происходит. Может кто-нибудь скажет мне, в чем разница между ними и почему выходы такие.
Во втором цикле, почему вы не установили все три измерения в ноль? – kkuilla
Я тебя не понял. – Pawan
Можете ли вы опубликовать вывод 'size (Original)' please? – hbaderts