shamir叠像术 分类: 图像处理 2015-07-08 16:50 17人阅读 评论(1) 收藏
K=imread('SHNU.bmp');
height=info.Height;
width=info.Width;
A=zeros(height,width);
B=zeros(height,width);
C=zeros(height,width);
% 随机生成A,B,C矩阵
for i=1: height
for j=1: width
random=rand()*2;
if(random>1)
A(i,j)=1;B(i,j)=1;C(i,j)=1;
else
A(i,j)=0;B(i,j)=0;C(i,j)=0;
end
end
end
%%%%%生成子秘钥A,B,C图片
for i=1: height
for j=1: width
if(K(i,j)==0)
random=rand()*4;
if(random<1)
A(i,j)=0;A(i,j+1)=0;A(i+1,j)=1;A(i+1,j+1)=1;
B(i,j)=0;B(i+1,j)=0;B(i,j+1)=1;B(i+1,j+1)=1;
C(i,j)=0;C(i+1,j+1)=0;C(i,j+1)=1;C(i+1,j)=1;
else if(random<2)
A(i,j)=0;A(i,j+1)=0;A(i+1,j)=1;A(i+1,j+1)=1;
C(i,j+1)=0;C(i+1,j)=0;C(i,j)=1;C(i+1,j+1)=1;
B(i,j+1)=0;B(i+1,j+1)=0;B(i,j)=1;B(i+1,j)=1;
else if(random<3)
B(i,j)=0;B(i+1,j)=0;B(i,j+1)=1;B(i+1,j+1)=1;
A(i+1,j)=0;A(i+1,j+1)=0;A(i,j)=1;A(i,j+1)=1;
C(i,j+1)=0;C(i+1,j)=0;C(i,j)=1;C(i+1,j+1)=1;
else if(random<4)
B(i,j+1)=0;B(i+1,j+1)=0;B(i,j)=1;B(i+1,j)=1;
C(i,j)=0;C(i+1,j+1)=0;C(i,j+1)=1;C(i+1,j)=1;
A(i+1,j)=0;A(i+1,j+1)=0;A(i,j)=1;A(i,j+1)=1;
end
end
end
end
end
end
end
imwrite(A,'a.bmp','bmp');
imwrite(B,'b.bmp','bmp');
imwrite(C,'c.bmp','bmp');
figure
subplot(2,2,1),imshow(K);
subplot(2,2,2),imshow(A);
subplot(2,2,3),imshow(B);
subplot(2,2,4),imshow(C);
axes_handle = get(gcf, 'children');
axes(axes_handle(4)); title('original image');
axes(axes_handle(3)); title('image a');
axes(axes_handle(2)); title('image b');
axes(axes_handle(1)); title('image c');
%%%%隐藏信息的恢复
A1=imread('a.bmp');
B1=imread('b.bmp');
C1=imread('c.bmp');
random=rand()*3;
if(random<1)
K=A1;K12=A1;K13=A1;K23=A1;
else if(random<2)
K=B1;K12=B1;K13=B1;K23=B1;
else
K=C1;K12=C1;K13=C1;K23=C1;
end
end
for i=1: height-1
for j=1: width-1
if((xor(xor(A1(i,j),B1(i,j)),C1(i,j))==0)&&(xor(xor(A1(i,j+1),B1(i,j+1)),C1(i,j+1))==0)&&(xor(xor(A1(i+1,j),B1(i+1,j)),C1(i+1,j))==0)&&(xor(xor(A1(i+1,j+1),B1(i+1,j+1)),C1(i+1,j+1))==0))
K(i,j)=0;K(i,j+1)=0;K(i+1,j)=0;K(i+1,j+1)=0;
end
end
end
for i=1: height-1,
for j=1: width-1,
if((A1(i,j)||B1(i,j))==0&&(A1(i,j+1)||B1(i,j+1))==0&&(A1(i+1,j)||B1(i+1,j))==0&&(A1(i+1,j+1)||B1(i+1,j+1))==0)
K12(i,j)=0;K12(i,j+1)=0;K12(i+1,j)=0;K12(i+1,j+1)=0;
end
end
end
for i=1: height-1,
for j=1: width-1,
if((A1(i,j)||C1(i,j))==0&&(A1(i,j+1)||C1(i,j+1))==0&&(A1(i+1,j)||C1(i+1,j))==0&&(A1(i+1,j+1)||C1(i+1,j+1))==0)
K13(i,j)=0;K13(i,j+1)=0;K13(i+1,j)=0;K13(i+1,j+1)=0;
end
end
end
for i=1: height-1,
for j=1: width-1,
if((C1(i,j)||B1(i,j))==0&&(C1(i,j+1)||B1(i,j+1))==0&&(C1(i+1,j)||B1(i+1,j))==0&&(C1(i+1,j+1)||B1(i+1,j+1))==0)
K23(i,j)=0;K23(i,j+1)=0;K23(i+1,j)=0;K23(i+1,j+1)=0;
end
end
end
imwrite(K,'K.bmp','bmp')
imwrite(K12,'image_a+b.bmp','bmp')
imwrite(K13,'image_a+c.bmp','bmp')
imwrite(K23,'image_b+c.bmp','bmp')
figure
imshow(K);
title('recovery image');
figure
subplot(2,2,1),imshow(K12);
subplot(2,2,2),imshow(K13);
subplot(2,2,3),imshow(K23);
axes_handle = get(gcf, 'children');
axes(axes_handle(3)); title('image a+b');
axes(axes_handle(2)); title('image a+c');
axes(axes_handle(1)); title('image b+c');
版权声明:本文为博主原创文章,未经博主允许不得转载。
shamir叠像术 分类: 图像处理 2015-07-08 16:50 17人阅读 评论(1) 收藏的更多相关文章
- JqueryDemoTools-用于整理jQueryDemo 分类: C# 公共资源 2014-12-02 16:50 224人阅读 评论(1) 收藏
应用背景: 在学习js时,为了熟悉某个功能,或使用某个插件,往往需要写一个Demo来测试:一些好的Demo也可以整理积累下来,方便以后查阅: 写了一个编写jQuery Demo的辅助工具.界面很简单, ...
- iOS自定义字体及类目 分类: ios技术 2015-05-15 16:34 195人阅读 评论(0) 收藏
1:获取字体文件 从各种渠道下载字体文件ttf, 网站或者从别的ipa里扣出来.(以fzltxh.ttf为例) 2:将fzltxh.ttf文件拷贝到工程中 3:在Info.plist中添加项: Fon ...
- iOS开发网络数据之AFNetworking使用 分类: ios技术 2015-04-03 16:35 105人阅读 评论(0) 收藏
http网络库是集XML解析,Json解析,网络图片下载,plist解析,数据流请求操作,上传,下载,缓存等网络众多功能于一身的强大的类库.最新版本支持session,xctool单元测试.网络获取数 ...
- NPOI 通用导出数据到Excel 分类: C# Helper 2014-11-04 16:06 246人阅读 评论(0) 收藏
应用场景: 在项目中,经常遇到将数据库数据导出到Excel,针对这种情况做了个程序封装.工作原理:利用NPOI将SQL语句查询出的DataTable数据导出到Excel,所见即所得. 程序界面: ...
- ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 175人阅读 评论(0) 收藏
一.功能说明: 可以解决类似 http://****/news 情形,Url路径支持正则匹配. 二.操作步骤: 1.增加URL重写模块: using System; using System.IO; ...
- ASP.NET 自定义URL重写 分类: ASP.NET 2014-10-31 16:05 174人阅读 评论(0) 收藏
一.功能说明: 可以解决类似 http://****/news 情形,Url路径支持正则匹配. 二.操作步骤: 1.增加URL重写模块: using System; using System.IO; ...
- JqueryEasyUI 解决IE下加载时页面错乱的问题 分类: JavaScript JqueryEasyUI 2014-09-20 09:50 545人阅读 评论(1) 收藏
问题描述: 一直觉得jqueryeasyui在IE下的渲染效果不大好,尤其刚进入页面时的加载,页面会出现布局错乱,虽然是一闪而过,但是给用户的体验不好: 可以通过在页面onload时,增加一个遮罩层, ...
- C# IIS应用程序池辅助类 分类: C# Helper 2014-07-19 09:50 249人阅读 评论(0) 收藏
using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using Microsoft ...
- Prime Path 分类: 搜索 POJ 2015-08-09 16:21 4人阅读 评论(0) 收藏
Prime Path Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14091 Accepted: 7959 Descripti ...
随机推荐
- ASP.NET MVC学习之路由篇(3)
根据路由输出链接 既然是网站开发自然少不了链接,我们已经学会了强大的路由,但是还缺少一步就是能够将这些路由的路径输出到页面,下面我们就开始学习如何输出路由路径. 首先我们的路由注册部分如下所示: 1 ...
- Java基础01 ------ 从HelloWorld到面向对象
Java是完全面向对象的语言.Java通过虚拟机的运行机制,实现“跨平台”的理念.我在这里想要呈现一个适合初学者的教程,希望对大家有用. "Hello World!" 先来看一个H ...
- C/C++文件结构
总结者:kate (1).h 为头文件:存放 版权和版本声明,预处理块 ,函数和类结构声明 (2).cpp文件:代码文件,存放程序的实现 大都数时候,源文件和头文件是对应出现的,比如有一个A.cpp ...
- App右上角数字
IOS7: UIApplication *app = [UIApplication sharedApplication]; // 应用程序右上角数字 app.applicationIconBadgeN ...
- c规范(2)
一:对齐 1 程序的分界符' {'和' }'应独占一行并且位于同一列,同时与引用它们的语句左对齐. 2 { }之内的代码块在' {'右边数格处左对齐. 二:注释 注释通常用于:( 1)版本.版权声明 ...
- 二、XML约束
XML约束有dtd约束和Schema约束两种 dtd约束:可以在xml内部写dtd约束也可以在xml中引用外部dtd文件 book.dtd<!ELEMENT 书架 (书+)> < ...
- 又见蒙特卡洛——python模拟解决三门问题
三门问题很有意思,wiki用不同方法将原理讲的很透彻了,我跟喜欢其中这种理解方式:无论参赛者开始的选择如何,在被主持人问到是否更换时都选择更换.如果参赛者先选中山羊,换之后百分之百赢:如果参赛者先选中 ...
- 【LEETCODE OJ】Binary Tree Postorder Traversal
Problem Link: http://oj.leetcode.com/problems/binary-tree-postorder-traversal/ The post-order-traver ...
- IE6-8支持css3属性
方法一.让IE6-8支持css3属性 <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shi ...
- js 字符串转化成数字:(实例:用正则检测大于0的正数,最多保留4位小数)
来源:http://www.cnblogs.com/hwx0807/archive/2011/06/28/2092021.html 实例: function BindSubmitEvent() { / ...