Я хочу поместить modelImage (изображение RGB) в baseImage (изображение RGB), где центр modelImage будет расположен в pPoint.
Я уже написал функцию.
И это работает. Однако в модели image есть около 0 пикселей. Я не хочу размещать 0 пикселей modelImage на baseImage. Можете ли вы помочь мне изменить мою функцию?
% Put the modelImage onto baseImage at pPoint
function newImage = imgTranslate(modelImage,baseImage, pPoint)
[nRow nCol noDim] = size(modelImage);
pPointX = pPoint(1);
pPointY = pPoint(2);
startColumn = pPointY - nCol/2;
startRow = pPointX - nRow/2;
startColumn = round(startColumn);
startRow = round(startRow);
endColumn = startColumn+ nCol;
endRow = startRow+nRow;
%% Place modelImage onto baseImage BUT I WANT TO IGNORE O pixels of modelImage
baseImage(startRow:(endRow-1),startColumn:(endColumn-1),:) = modelImage;
newImage = baseImage;
Использование FOR и IF работает, но замедляет работу программы
%%
for i = startRow: (endRow-1)
x = (i-startRow +1);
for j = startColumn : (endColumn-1)
y = j-startColumn + 1;
if modelImage(x,y,:)~=0
baseImage(i,j,:) = modelImage(x,y,:);
end
end
end
Любой способ не использовать FOR и IF?