`
xiaoer_1982
  • 浏览: 1895464 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

部分源代码

阅读更多


下面是上述仿真的部分代码,供参考。

%a原始数据数组
%aa存储像素从1到255
%bb存储aa中每个像素所对应的个数
%cc将a化成一列后,所形成的数组
%dd,cc中小于最大个数的像素值,减1处理后的结果
%copyrightbylilizong
a
=imread('c:oat.png');
figure,imshow(a),title(
'嵌入水印前原图像');
fori=1:255
aa(i)
=i;%用于存储像素值
end
fori=1:255
bb(i)
=0;%用于存储每个像素的个数
end
[m,n]
=size(a);
k
=m*n;%a的大小
cc
=a(:);
tt
=1;%循环遍历向量
%求出某个像素的个数

fori=1:k
forj=1:255
if(cc(i)==aa(j))
bb(j)
=bb(j)+1;
end
end
end
%求出哪个像素的个数是最大

max
=bb(1);
fori=1:255
if(bb(i)>max)
max
=bb(i);
maxi
=i;
end
end
%将所有小于max的像素的值都减1
ddd
=zeros(m,n);
dd
=ddd(:);%产生和cc同样大小的数组,用于存放cc处理后结果;

fori=1:k
if(cc(i)<max)
dd(i)
=cc(i)-1;
end
end
%读入水印,并将水印转换成一列,
watermark
=imread('c:watermark1.png');
figure,imshow(watermark),title(
'水印图像');
[w1,w2]
=size(watermark);
watermark_line
=watermark(:);
oo
=w1*w2;
%开始嵌入水印
tt
=1;%让tt加1来遍历整个水印图像
fori=1:k
if(dd(i)==max)
if(tt>oo)
tt
=1;%如果超出水印的范围从头开始
if(watermark_line(tt)==1)
dd(i)
=dd(i)-1;
end

end
tt
=tt+1;
end
end

%显示嵌入水印的图像


embed
=dd;
embed
=reshape(dd,m,n);
figure,imshow(embed,[]),title(
'嵌入水印后图像');
imwrite(embed,
'c:embed2.gif');

%提取水印

fori=1:k
if(dd(i)==max)
watermark(tt)
=0;
tt
=tt+1;
elseif(dd(i)
==(max-1))
watermark(tt)
=1;
tt
=tt+1;
end
end
fori=1:oo
watermark_dect(i)
=watermark(i);
end
watermark_dect
=reshape(watermark_dect,w1,w2);
figure,imshow(watermark_dect,[]),title(
'提取后水印');

%恢复原图像
dd
=embed(:);
fori=1:k
if(dd(i)==(max-1))
dd(i)
=dd(i)+1;
elseif(dd(i)
<max)
dd(i)
=dd(i)+1;
end
end
dd
=reshape(dd,m,n);
figure,imshow(dd,[]),title(
'恢复后图像');


%对原图和恢复图像进行比较








分享到:
评论

相关推荐

    有关arm的部分源代码

    这个标题"有关arm的部分源代码"指的是包含有针对ARM处理器编写的源代码文件。这些源代码是用于理解和控制ARM硬件行为的基础,通常由C或C++等编程语言编写,有时也会包括汇编语言。 描述中的“嵌入式的简单程序”...

    android 系统部分源代码

    android 系统部分源代码android 系统部分源代码

    奇迹MUS10部分源代码

    《奇迹MUS10部分源代码》是一份与知名网络游戏《奇迹MU》相关的源代码集合。这份源代码是由一位私人开发商开发并意外流失的,它揭示了游戏内部机制的冰山一角,对于开发者和研究者来说,具有极高的学习和研究价值。...

    奇迹世界游戏部分源代码

    《奇迹世界游戏部分源代码》是一份珍贵的编程资源,主要涵盖了游戏服务器的三大核心组件:MasterServer、GameServer和WorldServer。这些源代码对于理解网络游戏的架构设计、服务器端逻辑以及多玩家同步机制有着极大...

    深度学习每周练习P部分源代码

    深度学习每周练习P部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习P部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习P部分源代码,由于大小限制删了一些,具体可以看...

    深度学习每周练习J部分源代码

    深度学习每周练习J部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习J部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习J部分源代码,由于大小限制删了一些,具体可以看...

    深度学习每周练习R部分源代码

    深度学习每周练习R部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习R部分源代码,由于大小限制删了一些,具体可以看原文章。深度学习每周练习R部分源代码,由于大小限制删了一些,具体可以看...

    WQX-SQ开发板PCB+原理图+部分源代码

    WQX-SQ开发板PCB+原理图+部分源代码WQX-SQ开发板PCB+原理图+部分源代码WQX-SQ开发板PCB+原理图+部分源代码WQX-SQ开发板PCB+原理图+部分源代码WQX-SQ开发板PCB+原理图+部分源代码WQX-SQ开发板PCB+原理图+部分源代码WQ...

    基本部分源代码

    【标题】:“基本部分源代码”这一标题表明我们即将探讨的是与Android开发相关的基础源代码。在Android应用开发中,源代码是程序员用编程语言编写的原始程序,它包含了实现特定功能的所有指令和逻辑。这部分源代码是...

    php指南2.0部分源代码.rar

    此外,通过学习这部分源代码,你还可以了解到良好的编程实践,如代码结构、注释规范、错误处理和异常处理等。这些都是提升代码质量和可维护性的重要因素。对于初学者来说,了解并遵循这些最佳实践将有助于成长为一名...

    按键模拟器部分源代码。

    部分源代码。 部分源代码公开,可以直接编译运行哟。 欢迎大家提建议和意见,互相交流才能提高 只要知道了这部分源代码,其他的都很容易写出来。这些毕竟都是些很基础的东西 只有自己写出来全部程序,才能真正...

    java进销存部分源代码

    提供部分源代码对编写有帮助,希望对大家有点帮助

    基于python的svm部分源代码

    基于python的svm部分源代码基于python的svm部分源代码

    Ext 深入浅出的部分源代码

    Ext 深入浅出的部分源代码 完整的,可以运行

    .net 官方部分源代码 

    通过工具下载的.net framework的部分源代码,大家可以下来研究下.......(由于上传限制分为2部分)

    25个经典网站源代码

    5. 前端框架:部分源代码可能基于流行的前端框架,如Bootstrap、Angular或React,这可以帮助开发者快速构建界面,同时保持代码的整洁和可维护性。 6. 数据交互:网站可能使用AJAX(异步JavaScript和XML)与服务器...

    Jlink.rar_Jlink 源代码_jlink_jlink.c_jlink.rar_jlinkarm.cpp

    这是Jlink部分源代码。低调。。。严禁用于商业目的。

    重写WINDOWS扫雷程序部分源代码

    重写WINDOWS扫雷程序部分源代码,感觉 还成吧

    windows2003 sp1内核源代码 部分

    这部分源代码涉及进程创建、销毁、线程上下文切换以及调度策略的实现。 2. **内存管理**:内核源代码中的内存管理模块负责分配、释放和管理物理及虚拟内存。这部分包括页表维护、内存分配策略、页面交换等技术。 3...

    实验5 树和二叉树--部分源代码.c

    实验5 树和二叉树--部分源代码.c

Global site tag (gtag.js) - Google Analytics