将二值图嵌入两张图片并反解

[hpiccover1,hpiccover2] = LSB(piccover1,piccover2,pic2ray);
subplot(2,2,1),imshow(piccover1),title('第一张封面原图')
subplot(2,2,2),imshow(hpiccover1),title('第一张封面嵌入')
subplot(2,2,3),imshow(piccover2),title('第二张封面原图')
subplot(2,2,4),imshow(hpiccover2),title('第二张封面嵌入')
picjie = inLSB(hpiccover1,hpiccover2);
imshow(picjie)


LSB

function  [piccover1,piccover2] = LSB( piccover1,piccover2,pic2ray ) %piccover第一封面,piccover2为第二封面,pic2ray二值图
[M,N]=size(piccover1);
[m,n]=size(pic2ray);
[r,c]=size(piccover2);
X=min(M,r);
Y=min(N,c);
if(m<=X&&n<=Y)for i=1:mfor j=1:nif pic2ray(i,j)==1&&mod(mod(piccover1(i,j),2)+mod(piccover2(i,j),2),2)==1      %若封面一二灰度值相加余数等于隐藏信息值,则不动,因为灰度值有上限,所以不能两个灰度值直接相加continue;elseif pic2ray(i,j)==0&&mod(mod(piccover1(i,j),2)+mod(piccover2(i,j),2),2)==0continue;else                     %若封面一二灰度值相加余数不等于,则进行双重随机增加保密性a=randsrc;           %随机数a=1或者-1if a==1if piccover1(i,j)==0piccover1(i,j)=piccover1(i,j)+1;elseif piccover1(i,j)==255piccover1(i,j)=piccover1(i,j)-1;elsepiccover1(i,j)=piccover1(i,j)+randsrc;endelseif piccover2(i,j)==0piccover2(i,j)=piccover2(i,j)+1;elseif piccover2(i,j)==255piccover2(i,j)=piccover2(i,j)-1;elsepiccover2(i,j)=piccover2(i,j)+randsrc;end      endendend         end
elsefprintf('朋友,封面大小不够唉!')
end
end

inLSB

function picjie = inLSB(hpiccover1,hpiccover2)
[M,N]=size(hpiccover1);
[r,c]=size(hpiccover2);
X=min(M,r);
Y=min(N,c);
picjie=zeros(X,Y);for i=1:Xfor j=1:Yif mod(mod(hpiccover1(i,j),2)+mod(hpiccover2(i,j),2),2)==1picjie(i,j)=255;elsepicjie(i,j)=0;endendend
end

LSB 算法matlab改进版,将二值图嵌入多张灰度图像中相关推荐

  1. OpenCV-细化算法(thinning algorithm)算法详解——提取二值图的骨架

    昨天不是说同学问我怎么绘制出轮廓的中心线.然后我上网查了一下其实这个有专门的算法叫做细化算法.用专业术语去描述绘制出轮廓的中心线叫做(提取图像的骨架).然后这一篇博客呢是我对这个细化算法的解读与实操~ ...

  2. MATLAB二值图连通域快速标记算法

    (来点有用的)MATLAB二值图连通域快速标记算法 基本原理 算法实现 0. 变量解释 1.种子点搜索 2 区域生长 完整代码 实验 其他 by HPC_ZY 由于工程需要,用C++实现三维二值图像的 ...

  3. MATLAB二值图求figure图中任意图形面积

    MATLAB二值图求figure图中任意图形面积 问题描述 思路 代码 效果 问题描述 MATLAB的figure图遇到曲线是由离散点组成,没有解析表达式.想求曲线包围面积时无法直接编程求解.如下图 ...

  4. OpenCV技巧 | 二值图孔洞填充方法与实现(附Python/C++源码)

    点击上方"OpenCV与AI深度学习",选择加"星标"或"置顶" 重磅干货,第一时间送达 导读 本文主要介绍使用OpenCV对二值图做孔洞填 ...

  5. C语言二值图的腐蚀膨胀及开闭运算

    (M2C系列)C语言二值图的形态学腐蚀膨胀及开闭运算 一.结构元 二.腐蚀 三.膨胀 四.开闭运算 五.其他 by HPC_ZY 由于剧情,需要纯C(不用三方库)实现图像算法.但作为一名MATLAB老 ...

  6. 利用Floyd-Steinberg方法(dithering),将灰度图转换为二值图

    灰度图有256级灰度,而二值图只有黑白两色.颜色数目大大降低,直观感觉转换效果不会好.其实人眼类似于一个低通滤波器,你看到的并不是一个一个像素点,而是接受的颜色信息是一个区域内的颜色信息的综合效果. ...

  7. OpenCV(实战)二值图颜色填充(彩色图形、硬币)

    目录 一.彩色图形填充 1.初始效果展示 2.试错过程: 1.试错1:锐化显示所有图片 2.试错2:用礼帽提取出明亮部分 3.正确方式:直接对图片亮度增强(不用形态学处理) 总代码 二.硬币填充 1. ...

  8. python 简单图像处理(13) 二值图腐蚀和膨胀,开运算、闭运算

    原文:http://www.cnblogs.com/xianglan/archive/2010/12/29/1921211.html python 简单图像处理(13) 二值图腐蚀和膨胀,开运算.闭运 ...

  9. Python中使用PIL快速实现二值图

    二值图 二值图像是指:每个像素不是黑就是白,其灰度值没有中间过渡的图像.二值图像一般用来描述文字或者图形,其优点是占用空间少,缺点是,当表示人物,风景的图像时,二值图像只能描述其轮廓,不能描述细节.这 ...

  10. 利用OpenCV和C++实现由RGB图像转化为灰度图,再将灰度图转化为二值图的程序

    #include<opencv2\opencv.hpp> #include<opencv2/imgproc/imgproc.hpp> #include<opencv2\i ...

最新文章

  1. 使用Javascript制作连续滚动字幕
  2. 设计模板类,使得在创建一个对象时可以动态确定它的基类(public)
  3. python实体类dict to object
  4. linux内核之accept实现
  5. wordpress引入php文件,WordPress主题制作之模板文件的引入方法,wordpress模板
  6. android程序到处apk,导出已安装到手机中程序的apk文件
  7. python 深copy_python中的深copy和浅copy
  8. oracle聚合函数wmsys,oracle 自定义聚合函数
  9. 【java】在jsp的js和css里面使用EL表达式取值|style里面用$取值
  10. JMeter中使用“用户自定义变量”实现参数化
  11. 计算机四进制表示形式,1.4.2 二进制数的四种表示形式(1)
  12. string类型的数字字符串直接转换成int型方法
  13. (一)机器学习入门与经典算法之KNN算法(第一期)
  14. 华为手机相册怎么镜像翻转_手机相册里的照片误删怎么恢复?简单操作就搞定...
  15. 完全删除iCloud注册的Apple ID
  16. 浏览网站ssl证书错误该怎么办?
  17. 洛谷 P3373 【模板】线段树 2
  18. ckplayer无法播放问题?
  19. [转]部分日文实用网址介绍
  20. [ABAP] 把两个RADIOBUTTON放在同一行

热门文章

  1. 卸载wps后安装office图标异常的问题
  2. 移动oa咋显示无法连接服务器,移动oa办公系统管理维护技巧:让本地连接不再受限的方法...
  3. jQuery + JavaScript 实现的动态添加文本框功能 和 动态删除文本框功能(二)
  4. html怎么设置视频为背景图片,如何给视频加上背景图片
  5. 软路由cpu性能跑分
  6. Asp.NET Core+ABP框架+IdentityServer4+MySQL+Ext JS之文件上传
  7. 解除excel打开密码
  8. 从2019年移动数字金融与电子商务反欺诈白皮书看金融反欺诈攻防战
  9. 怎么根据分隔符号将Excel数据换行复制
  10. html中两列合并,wps两列合并成一列(表格中怎么把两列内容合并)