【问题标题】:extracting watermark svd matlab提取水印svd matlab
【发布时间】:2016-02-16 13:34:13
【问题描述】:

我在使用 SVD 提取水印时遇到问题。

这是我的代码:

clc
close all;
a=0.0010
I=imread('citra.jpg'); %Image Host
I=rgb2gray(I);
II=im2double(I);
[U,S,V]=svd(II);
M=imread('logoUPN.jpg'); %Image Watermark
M=rgb2gray(M)
W=im2double(M);
%Embedding St = S + a * W;
AW = U * St * V';
imwrite(AW,'watermarked.jpg');
%Extract IW =imread('watermarked.jpg'); WW = im2double(IW);
ST=U' * WW * V;
Ww=(ST-Siga)/a;
figure,imshow(AW);
figure,imshow(Ww);

提取的图像模糊不清。我想做两个菜单嵌入和提取。

【问题讨论】:

    标签: matlab watermark extraction svd


    【解决方案1】:

    要提取水印,请使用 [UT ST VT] = svd(WW) 而不是 ST=U' * WW * V,然后使用此 ST 值提取水印。

    【讨论】:

      【解决方案2】:

      这里S是一个对角矩阵,另外两个是分别遵循规则USV'的左右奇异向量。 要获得 S 值,我们不能应用反向乘法。所以需要写 [U S V]=SVD(WW) 代替表达式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-15
        • 1970-01-01
        • 2014-06-29
        • 2020-07-12
        • 2020-05-23
        相关资源
        最近更新 更多