一、双相位编码单通道彩色图像加密简介

1 前言
在国际上不断发展的新一代信息安全理论与技术的研究中,基于光学理论与方法的数据加密、隐藏和提取技术成为了一个重要的组成部分。近年来,国内外很多学者都开始从事这方面的研究,并提出了很多新方法,新技术.在这些研究中,大多是采用单色光照明,因此所恢复的图像将会失去彩色信息.
色彩是自然界的基本属性之一,图像的色彩信息在许多场合都是非常有用的,彩色图像信息的加密处理正受到越来越多的重视.在这类研究中,彩色图像通常被分成3个或多个通道,再采用和灰度图像相同的处理方法,解密时将各个通道组合起来,以恢复原来的彩色图像,这类方法常被称为多通道彩色图像处理.由于使用了多个通道,则相应的光学实现系统也就需要多个光源和多套光学元件,在增加了实验难度的同时,也增加了系统的成本,使此类方法的实用性受到限制.
本文提出一种基于双相位编码的单通道彩色图像加密方法.在该方法中, 图像首先被从RGB空间转换到HSI(色调、饱和度、强度) 空间, 再将其合并到一个通道中,采用双相位编码技术加密.其中,(强度)分量可作为双相位编码时的原始待加密图像,而编码时所用的密钥,可由H(色调)分量和S(饱和度) 分量获得.因为在HSI空间中, 色调与一个角度相对应,可以将其作为一个相位角来处理,该相位即可作为双相位编码中的相位密钥之一;而采用双随机相位加密技术对S分量加密后得到的相息图,可作为双相位编码的另一个密钥.由于仅使用一个通道对彩色图像加密,其相应的光学实现系统仅需一个光源和一套光学元件,不仅使实验难度降低,也减少了系统的成本.又因为采用双随机相位加密技术得到的S分量的相息图,在加密的过程中引进了随机相位因子,在不知密钥的情况下解密出S分量几乎不可能,从而保证了本方法的安全性.模拟实验结果证明了本文所提出方法的有效性。

2.色彩空间的转换
本文中,图像的彩色信息被转换成振幅和位相信息,以实现单通道加密.而彩色图像通常用红、绿、蓝三元组的二维矩阵来表示.为此,首先需将彩色图像用HSI表示.在RGB和HSI之间的变换公式有多种形式, 所有变换方法的基本思想都是一致的.一般而言,对

2.1 RGB 到HSI 的彩色模型转换

2.2 HSI 到RGB 的彩色模型转换

3.彩色图像的单通道加密
3.1.密钥 ——— S 分量的加密


3.2 基于双相位的单通道彩色图像加密




二、部分源代码

clc;close all;
I=imread('1.jpg');% 载入图像
A=im2double(I);% 将图像转为double格式
AA=rgb2hsv(A);
S=AA(:,:,2);
F=AA;
figure,imshow(A);title('彩色原始图片');% 显示图像
figure,imshow(S);title('原始');% 显示图像[m,n,color]=size(A);
n1=exp(2j*pi*unifrnd(0,1,m,n));
n2=exp(2j*pi*unifrnd(0,1,m,n));
S=fftshift(S);G=ifft2(fft2(S.*n1).*n2);
figure,imshow(G);title('编码');% 显示图像function [rout,g,b] = hsv2rgb(hin,s,v)%HSV2RGB Convert hue-saturation-value colors to red-green-blue.%   M = HSV2RGB(H) converts an HSV color map to an RGB color map.%   Each map is a matrix with any number of rows, exactly three columns,%   and elements in the interval 0 to 1.  The columns of the input matrix,%   H, represent hue, saturation and value, respectively.  The columns of%   the resulting output matrix, M, represent intensity of red, blue and%   green, respectively.%%   RGB = HSV2RGB(HSV) converts the HSV image HSV (3-D array) to the%   equivalent RGB image RGB (3-D array).%%   As the hue varies from 0 to 1, the resulting color varies from%   red, through yellow, green, cyan, blue and magenta, back to red.%   When the saturation is 0, the colors are unsaturated; they are%   simply shades of gray.  When the saturation is 1, the colors are%   fully saturated; they contain no white component.  As the value%   varies from 0 to 1, the brightness increases.%%   The colormap HSV is hsv2rgb([h s v]) where h is a linear ramp%   from 0 to 1 and both s and v are all 1's.%%   See also RGB2HSV, COLORMAP, RGBPLOT.%   Undocumented syntaxes:%   [R,G,B] = HSV2RGB(H,S,V) converts the HSV image H,S,V to the%   equivalent RGB image R,G,B.%%   RGB = HSV2RGB(H,S,V) converts the HSV image H,S,V to the %   equivalent RGB image stored in the 3-D array (RGB).%%   [R,G,B] = HSV2RGB(HSV) converts the HSV image HSV (3-D array) to%   the equivalent RGB image R,G,B.%   See Alvy Ray Smith, Color Gamut Transform Pairs, SIGGRAPH '78.%   Copyright 1984-2011 The MathWorks, Inc. if nargin == 1 % HSV colormapthreeD = ndims(hin)==3; % Determine if input includes a 3-D arrayif threeDh = hin(:,:,1); s = hin(:,:,2); v = hin(:,:,3);elseh = hin(:,1); s = hin(:,2); v = hin(:,3);endelseif nargin == 3if ~isequal(size(hin),size(s),size(v))error(message('MATLAB:hsv2rgb:InputSizeMismatch'));endh = hin;elseerror(message('MATLAB:hsv2rgb:WrongInputNum'));end    h = 6.*h;k = floor(h);p = h-k;t = 1-s;n = 1-s.*p;p = 1-(s.*(1-p));% Processing each value of k separately to avoid simultaneously storing% many temporary matrices the same size as k in memorykc = (k==0 | k==6);r = kc;g = kc.*p;b = kc.*t;kc = (k==1);r = r + kc.*n;g = g + kc;b = b + kc.*t;kc = (k==2);r = r + kc.*t;g = g + kc;b = b + kc.*p;b = b + kc;kc = (k==4);r = r + kc.*p;g = g + kc.*t;b = b + kc;kc = (k==5);r = r + kc;g = g + kc.*t;b = b + kc.*n;if nargout <= 1rout = cat(3,r,g,b);elserout = [r g b];endelsef = v./max([max(r(:)); max(g(:)); max(b(:))]);rout = f.*r;g = f.*g;b = f.*b;end

三、运行结果





四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.

【图像加密】基于matlab双相位编码单通道彩色图像加密【含Matlab源码 1241期】相关推荐

  1. 【Matlab语音处理】声音信号频谱分析仪【含GUI源码 325期】

    一.代码运行视频(哔哩哔哩) [Matlab语音处理]声音信号频谱分析仪[含GUI源码 325期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊, ...

  2. 【Matlab图像检索】综合特征图像检索【含GUI源码 395期】

    一.代码运行视频(哔哩哔哩) [Matlab图像检索]综合特征图像检索[含GUI源码 395期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  3. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  4. 【Matlab条形码识别】二维条形码识别【含GUI源码 607期】

    一.代码运行视频(哔哩哔哩) [Matlab条形码识别]二维条形码识别[含GUI源码 607期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  5. 【Matlab图像加密】正交拉丁方置乱算法图像加解密【含GUI源码 182期】

    一.代码运行视频(哔哩哔哩) [Matlab图像加密]正交拉丁方置乱算法图像加解密[含GUI源码 182期] 二.matlab版本及参考文献 一.代码运行视频(哔哩哔哩) [Matlab图像处理]自动 ...

  6. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  7. 【Matlab语音加密】语音信号加密解密(带面板)【含GUI源码 181期】

    一.代码运行视频(哔哩哔哩) [Matlab语音加密]语音信号加密解密(带面板)[含GUI源码 181期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆 ...

  8. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  9. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  10. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

最新文章

  1. 三周第五次课) 4.5/4.6 磁盘格式化 4.7/4.8 磁盘挂载 4.9 手动增加swap空间
  2. Boost:双图bimap的修改和替换测试程序
  3. 《江南百景图》游戏设计小思考:留边占角“小烦恼”
  4. 算力云服务器是干啥的,云服务器将成趋势计算力和安全性是考验
  5. Nginx常用配置清单
  6. html标签acronym没用,acronym_废弃 | Obsolete_HTML_参考手册_非常教程
  7. 永久修改MySQL字符集(适用Mysql5.5、Mysql5.6、Mysql5.7以上)
  8. linux下rpm包安装jdk,linux jdk rpm包安装
  9. Atitit.异步编程的发展历史 1.1. TAP  async/await
  10. Delphi Web前端开发教程(1):基于TMS WEB Core框架
  11. Matlab:实现菲涅尔矩形孔衍射仿真
  12. C# System.DirectoryServices.DirectoryEntry 域用户验证
  13. 修订的GRE分类词汇(截屏版)
  14. 今日骑行路线里程。。。
  15. 《想做视频号必须要懂的知识——音质篇》
  16. EurekaCAP原理
  17. 云课堂C++类10T级课程第十课
  18. 【烈日炎炎战后端】Linux(0.3万字)
  19. 叮! Q币派送中,快来看看你中奖了吗?
  20. 沪江日语百度云视频 0-n1百度云网盘视频的swf需要特定的播放器才能播放

热门文章

  1. 【转】利用匿名namespace解决C++中重复定义的问题
  2. UIAlterController-ios8弹出菜单
  3. ceph_OSD的添加删除
  4. 常见浏览器兼容性问题与解决方案(CSS)
  5. 异步将远程链接上的内容(图片或内容)写到本地--微信头像
  6. [转载]c# winform 获取当前程序运行根目录
  7. 转贴:如何恢复Thunderbird里误删除的邮件?三种方法
  8. 190704每日一句
  9. Atitit aop spring5.2 demo与流程总结 目录 1.1. 定义切面MyAllAspect 1 1.2. 定义普通类型userservice 1 1.3. 设置切面到某个方法上ex
  10. Atitit 导航模式 面包屑 胶囊式 标签式tab 目录 1.1. 表格导航 1 2. 面包屑导航来源于童话故事中的汉塞尔利用面包屑来记录回家的路的故事 1 2.1.1. 格林童话《Hanse