图像编码matlab代码
17日视图(30天)
显示旧的评论
你好
这段代码工作完美,但只是在左上角广场嵌入秘密消息。但我想embedd每一块。在每个bloock e我有64 x64块,有8×8块。我有点困惑但会感谢任何帮助,因为我是一个初学者水平的matlab。
马克= imbinarize (Watermark_Image);
marksize =大小(马克);
rm = marksize (1);% rowMat水印图像的行数
厘米= marksize (2);
图(1),次要情节(2、3、2);imshow (Watermark_Image)、标题(的水印图像);
T = dctmtx (8);
α= 105;%的比例因子,控制水印的强度,决定了频域系数进行修改
k1 = randn (1,8);%生成两个不同的随机序列,ruturns nxm矩阵正态分布的随机数
k2 = randn (1,8);
Dct_Image = blkproc (Y) [8],“dct2”);
Output_Image = Dct_Image;
为E = 1:4096
为i = 1: rm
为j = 1:厘米
x =(张)* 8;
y = (j - 1) * 8;
如果马克(i, j) = = 1
k = k1;
其他的
k = k2;
结束
% Output_Image (x, y) = Dct_Image (x, y) +α* k;
Output_Image (x + 1, y + 8) = Dct_Image (x + 1, y + 8) +αk * (1);
Output_Image (x + 2, y + 7) = Dct_Image (x + 2, y + 7) +αk * (2);
Output_Image (x + 3 y + 6) = Dct_Image (x + 3 y + 6) +αk * (3);
Output_Image (x + 4, y + 5) = Dct_Image (x + 4, y + 5) +αk * (4);
Output_Image (x + 5, y + 4) = Dct_Image (x + 5, y + 4) +αk * (5);
Output_Image (x + 6, y + 3) = Dct_Image (x + 6, y + 3) +αk * (6);
Output_Image (x + 7, y + 2) = Dct_Image (x + 7, y + 2) +αk * (7);
Output_Image (x + 8, y + 1) = Dct_Image (x + 8, y + 1) +α* k (8);
结束
结束
结束
% firsttX = blkproc(之后,[8],“P1 * x”,面具);
resultY = uint8 (blkproc (Output_Image [8],“idct2”));
接受的答案
图像分析
2020年12月6日
最简单的方法就是调整你的图像到一个64 x64缩略图,然后复制它做一个封面图片平铺的图像大小相同。您可以使用repmat (), imtile(),或蒙太奇()。或者看到我的演示。
我把水印bitplane 6所以你可以看到它复制在中间一点右列的图像。根据需要调整。