clc;closeall;clearall;I=imread('cquptxh.bmp');I=rgb2gray(I);[h,w]=size(I);F=I;figure;subplot(2,3,1);imshow(I,[]);title('原始水印');fori=1:5A=[1,2,50,100,192];N=A(i);fork=...
clc;
close all;
clear all;
I=imread('cquptxh.bmp');
I=rgb2gray(I);
[h,w]=size(I);
F=I;
figure;
subplot(2,3,1);
imshow(I,[]);title('原始水印');
for i=1:5
A=[1,2,50,100,192];
N=A(i);
for k=1:N
for x=1:h
for y=1:w
x1=x+y;
y1=x+2*y;
if x1>h
x1=mod(x1,256);
end
if y1>w
y1=mod(y1,256)
end
if x1==0
x1=256;
end
if y1==0
y1=256;
end
F(x1,y1)=I(x,y);
end
end
I=F;
end
t=A(i);
subplot(2,3,i+1);
imshow(F,[]);title('第',t,'次变换');
end
只能运行出原图和一个没标题的图,不知道哪里出了问题。
未添加循环语句的单次变换是这样地:
I=imread('cquptxh.bmp');
I=rgb2gray(I);
[h,w]=size(I);
F=I;
for k=1:192
for x=1:h
for y=1:w
x1=x+y;
y1=x+2*y;
if x1>h
x1=mod(x1,256);
end
if y1>w
y1=mod(y1,256)
end
if x1==0
x1=256;
end
if y1==0
y1=256;
end
F(x1,y1)=I(x,y);
end
end
I=F;
end
figure,imshow(F,[]);
展开