图像比例叠加

function [ image ] = overlap2im(image1, image2, ratio)
[h1 w1 c1] = size(image1);
[h2 w2 c2] = size(image2);
if c1 ~= c2
    error('input image required to have same channels!');
end
if ratio > 1 || ratio < 0
    error('ratio must between 0~1 !!!');
end
h = max(h1, h2);
w = max(w1, w2);
c = c1;
im = double(255.*ones(h,w,c));

im(1:h1,1:w1,:) = image1(:,:,:);

if h2 > h1
   im(h1+1:h, 1:min(w2,w), :) = image2(h1+1:h,1:w2,:); 
end
if w2 > w1
   im(1:min(h2,h), w1+1:w,:) = image2(1:h2, w1+1:w,:); 
end
im(1:min(h1,h2), 1:min(w1,w2),:) = im(1:min(h1,h2), 1:min(w1,w2),:)*ratio + double(image2(1:min(h1,h2), 1:min(w1,w2),:))*(1-ratio);

image = uint8(im);
end

你可能感兴趣的:(c,image,function,input,IM)