当前位置:   article > 正文

matlab学习(一)(3.26-4.1)

matlab学习(一)(3.26-4.1)

一.信息隐藏的概念

        信息隐藏是利用一些技术,使得要隐藏的信息是用眼睛看不出变化的。它将秘密信息隐藏在可公开的媒体信息中,使人们凭直观的视觉和听觉难以察觉基存在。

二.空域信息隐藏技术

        空域信息隐藏是将信息直接嵌入到图像的像素值中的技术。主要应用于数字图像。

2.1.优点: 

        简单:实现起来相对简单,不需要复杂的数学变换。

        隐蔽性:信息嵌入在图像中,不容易被察觉。

2.2.缺点:

        易受攻击:空域信息隐藏容易受到各种攻击,例如压缩、裁剪、滤波等。

        图像质量下降:嵌入信息可能导致图像质量的损失。(失真)

        隐藏容量小

三.频域信息隐藏技术       

        频域信息隐藏是将信息嵌入到图像的频域系数中的技术。(如离散余弦变换或小波变换)将图像从空域转换到频域,然后在频域中进行信息隐藏

3.1.优点:

        安全性较高(更难以察觉):频域信息隐藏相对于空域更难被攻击,因为攻击者不容易直接操作频域系数。

        隐藏效果较好:频域中的某些频率成分更适合隐藏信息。

        隐藏容量大

3.2.缺点

        比较复杂:频域变换和信息嵌入需要更复杂的数学操作。

        图像处理质量影响:频域信息隐藏可能会影响图像的质量,尤其是在高频区域。

四.Arnold变换

        4.1(test1)图片是方形的,在matlab(2018a)中实现,代码实现如下

  1. function img = arnold(img, n)
  2. [x, y] = size(img);
  3. img = double(img);
  4. for j = 1:n
  5. temp = zeros(x);
  6. for i = 1:x
  7. for j = 1:y
  8. p = [i-1; j-1];
  9. p = mod([1, 1; 1, 2] * p, x);
  10. temp(i, j) = img(p(1)+1, p(2)+1);
  11. end
  12. end
  13. img = temp;
  14. end
  15. img = uint8(img);
  16. end
  17. function main()
  18. img = imread('test.png');
  19. img_transformed = arnold(img, 1);
  20. imshow(img_transformed);
  21. imwrite(img_transformed, 'test_transformed.png');
  22. end

        4.2 (test2)彩色图置换代码如下

  1. img=imread('test.jpeg');%读取图片,根据Arnold变换的条件,图像必须是正方形
  2. mysize=size(img);%当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。
  3. if numel(mysize)>2%如果输入是彩色图像
  4. img=rgb2gray(img); %将彩色到灰度图像的转换
  5. fprintf("图像为彩色图\n"); %其中\r或者\n表示换行
  6. end
  7. imshow(img,[])
  8. title('彩色原图的灰度图');
  9. figure(2)
  10. imhist(img) %原图的直方图统计
  11. %如果输入的不是正方形图像,则打印如下
  12. [h,w]=size(img);
  13. if h>w
  14. img = imresize(img, [w w]);
  15. fprintf("图像长宽不一样,图像可能失真\r");
  16. end
  17. if h<w
  18. img = imresize(img, [h h]);
  19. fprintf("图像长宽不一样,图像可能失真");
  20. end
  21. [h,w]=size(img);
  22. %置乱与逆置乱必须采用共同参数的时候,就相当于密码,才能解密,让图像复原
  23. n=10;%迭代次数
  24. a=1;b=1;
  25. N=h;%N代表图像宽高,宽高要一样
  26. %置乱操作
  27. imgnnn=zeros(h,w);
  28. for i=1:n
  29. for y=1:h
  30. for x=1:w
  31. xx=mod((x-1)+b*(y-1),N)+1; %mod取余操作,(a,b)就是a除以b的余数
  32. yy=mod(a*(x-1)+(a*b+1)*(y-1),N)+1;
  33. imgnnn(yy,xx)=img(y,x);
  34. end
  35. end
  36. img=imgnnn;
  37. end
  38. imgnnn = uint8(imgnnn);
  39. figure(3)
  40. imshow(img,[])%置乱后的图片
  41. title('置乱后的图片 a=1;b=1,n=10');
  42. imwrite (imgnnn,'置乱后的图片.bmp'); %生成图像保存功能
  43. %逆置乱复原
  44. img2=imread('置乱后的图片.bmp');%读取置乱图片
  45. for i=1:n
  46. for y=1:h
  47. for x=1:w
  48. xx=mod((a*b+1)*(x-1)-b*(y-1),N)+1;%matlab索引中不能是0,要从1开始
  49. yy=mod(-a*(x-1)+(y-1),N)+1 ;
  50. imgnnn(yy,xx)=img2(y,x);
  51. end
  52. end
  53. img2=imgnnn;
  54. end
  55. imgnnn = uint8(imgnnn);
  56. figure(4)
  57. imshow(imgnnn,[])
  58. title('逆置乱的复原图片');
  59. imwrite(imgnnn,'逆置乱的复原图片.bmp');%生成图像保存功能

五.PSNR和NC

PSNR(峰值信噪比)

        PSNR值越高,表示重建质量越好。

NC(Normalized Compression Distance,标准化压缩距离)

        当NC值为1时,表示两个数据序列之间的压缩距离非常小,即它们非常相似。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/354975
推荐阅读
相关标签
  

闽ICP备14008679号