我在
面临问题fw=D_w((IND(k,1),IND(k,2));
and W2(k)= ((D_w(IND(k,1),IND(k,2))/D(IND(k,1),IND(k,2))-1)*10)
水印提取过程中存在问题,并且最后一个代码存在错误。任何建议。都可以对其进行一些修改。
因此,我们必须保护它免受泄漏,因此,他们不会触及错误的人。我们必须找到负责数据泄漏的人。如果将数据分发给在公共领域发现的第三方,则可能对公司所有者构成非常严重的威胁。
I=imread('girl512.bmp');
subplot(2,3,1),imshow(I,[]),title('Original Image');
wmsz=1000;
I=I(:,:,1);
[r,c]=size(I);
D=dct2(I);
D_vec=reshape(D,1,r*c);
[D_vec_srt,Idx]=sort(abs(D_vec),'descend');
W=randn(1,wmsz);
subplot(2,3,2),plot(W),title('Watermark');
Idx2=Idx(2:wmsz+1);%choosing 1000 biggest values other than the DC
%finding associated row-column order for vector values
IND=zeros(wmsz,2);
for k=1:wmsz
x=floor(Idx2(k)/r)+1;%associated column in the image
y=mod(Idx2(k),r);%associated row in the image
IND(k,1)=y;
IND(k,2)=x;
end
D_w=D;
%WATERMARK EMBEDDING
for k=1:wmsz
fw=D_w((IND(k,1),IND(k,2));
fw=fw+0.1*fw.*W(k);
end
I2=idct2(D_w);%inverse DCT to produce the watermarked asset
I2_int=uint8(I2);
imwrite(I2_int,'I2_watermarkedn.bmp','bmp');
subplot(2,3,3),imshow('I2_watermarkedn.bmp'),title('Watermarked Image');
%WATERMARK EXTRACTION
W2=[];
for k=1:wmsz
W2(k)=((D_w(IND(k,1),IND(k,2))/D(IND(k,1),IND(k,2))-1)*10);
end
subplot(2,3,4),plot(W2),title('Extracted Watermark');
答案 0 :(得分:2)
让我们算一下:
12 3 4 opens
fw=D_w((IND(k,1),IND(k,2));
1 23 closes
12 3 2 3 21 cumulative
所以,是的,他们 不平衡。你需要解决这个问题。我怀疑只需删除两个初始(
字符中的一个就可以解决这个问题。
12 3 4 5 6 7 8 opens
W2(k)= ((D_w(IND(k,1),IND(k,2))/D(IND(k,1),IND(k,2))-1)*10)
1 23 4 56 7 8 closes
12 3 4 3 4 32 3 4 3 4 32 1 0 cumulative
就数量而言,那些不不平衡。我无法保证展示位置,因为它相当复杂: - )