function WaterMarkedImage = WaterMarkPro(SourceImage, MarkImage, Visible)
if(Visible == 0)
m = im2bw(MarkImage,0.5);
mg = rgb2gray(MarkImage);
s = rgb2gray(SourceImage);
g1 = zeros(256,256);
g2 = zeros(256,256);
g3 = zeros(256,256);
g4 = zeros(256,256,3);
for i = 1:256
for j = 1:256
if((m(i,j)==0) &(mod(s(i,j),2) == 1))
s(i,j) = s(i,j) - 1;
end
if((m(i,j)==1) &(mod(s(i,j),2) == 0))
s(i,j) = s(i,j) + 1;
end
end
end
else
for i = 1:256
for j = 1:256
g1(i,j) = s(i,j) - 0.15*(s(i,j)-mg(i,j));
g2(i,j) = s(i,j) - 0.45*(s(i,j)-mg(i,j));
g3(i,j) = s(i,j) - 0.75*(s(i,j)-mg(i,j));
end
end
g4(1:256,1:256,1) = g1(1:256,1:256);
g4(1:256,1:256,2) = g2(1:256,1:256);
g4(1:256,1:256,3) = g3(1:256,1:256);
end
MATLAB菜鸟求助.
|