我想在modelImage的中心放置在pPoint的baseImage(RGB圖像)上放置一個modelImage(RGB圖像)。如何將圖像A放到圖像B上但我想要忽略圖像的所有O像素A
我已經寫了函數。
它的工作原理。但是,modelImage中有一些像素爲0。我不想將modelImage的0像素放在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?
請不要使用FOR循環,因爲它會降低方案 – John