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

仿真代码之二

阅读更多

仿真的部分代码,可以参考


%designed by lilizong
% lilizong[at]gmail

myinforarray=linspace(0,0,5);
mypsnrarray=linspace(0,0,5);
w=1;
for myouter=1:1000
A=imread('c:\boat.png');
[m,n]=size(A);
B=cell(8,8);%这里的k为你要分成大小为k*k的块
AA=A;
myinfor=0;
for myinter=1:3

for i=1:256/8
for j=1:256/8
B{i,j}=A((i-1)*8+1:i*8,(j-1)*8+1:j*8);
end
end


%将B化为一维
c=cell(8,8);
k=1;
for i=1:256/8
for j=1:256/8
c{k}=B{i,j};
k=k+1;
end
end




%下面的代码用于生成混沌序列,生成1024个数字,然后排序,取前512个,
%得到一个位于1-1024之间的无重复值的混沌序列

x=linspace(0,0,1024);

x(1)=0.8+myinter/10+myouter/10000;
t=linspace(0,0,1024);
m=0;
n=0;
for i=1:1023
x(i+1)=1-2*x(i)*x(i);
k=k+1;
end

[pm,pn]=sort(x);
%n为排序后结果,用的时候可以取前512个结果

tod=cell(8,8);
%定义toa为被混沌序列选中,需要处理的图像块为前512块
for i=1:1024
tod{i}=c{pn(i)};

test=tod; %添加一个测试块,看看问题出现在什么地方
end

%temp=cell(8,8);
%得到像素值数组xiang
xiangsu=linspace(0,0,256);
%对取得的图像快进行分析,找到最大像素值
for m=1:512
temp=tod{i};
% temp=cell2mat(temp);
for i=1:8
for j=1:8
for n=1:256
if temp(i,j)==n
xiangsu(n)=xiangsu(n)+1;
end
end
end
end
end
%求出最大像素的值
maxxiangsu=xiangsu(1);
for i=1:256
if maxxiangsu<xiangsu(i)
maxxiangsu=xiangsu(i);
maxvalueofxiangsu=i;
end
end


%开始对需要嵌入信息的图像快进行一位处理
for m=1:512 %表示需要处理的块数
temp=tod{m};
for i=1:8
for j=1:8
if temp(i,j)<maxvalueofxiangsu
%temp(i,j)=maxvalueofxiangsu-1;
temp(i,j)=temp(i,j)-1;
end
end

end
%tod{m}=mat2cell(temp); 更改4.28
tod{m}=temp;
end







%处理完毕,开始嵌入水印

%读入水印信息

b=imread('c:\watermark.png');
[p,q]=size(b);
oo=p*q; %用来标识水印的总像素数
watermark=reshape(b,1,oo);




%嵌入方式为,找到最高位,如果水印为0,不发生变化,如果水印为1,最高位减1
%令tt为嵌入水印循环量,如果t的值超过水印的信息量,则开始进行新的循环。
t=1; %用来标识嵌入位
infor=0; %用来标识总共可以嵌入的信息
for m=1:512
% temp=cell2mat(toa{m});
temp=tod{m};
for i=1:8
for j=1:8
if temp(i,j)==maxvalueofxiangsu
if watermark(t)==1 %水印的信息如果是1,则进行原信息的改变
temp(i,j)=temp(i,j)-1; %此处测试一下
% temp(i,j)=256;
t=t+1;
if(t>oo)
t=0;
end

end
infor=infor+1;
end
end
end
%tod{m}=mat2cell(temp);
tod{m}=temp;
end
myinfor=myinfor+infor;



%对图像进行拼接
toad=cell(8,8);
for i=1:1024
toad{pn(i)}=tod{i};
end
k=1;
toyuan=cell(8,8);
for i=1:32
for j=1:32
toyuan{i,j}=toad{k};
k=k+1;
end
end


toyuan=cell2mat(toyuan);





% figure,imshow(toyuan);
% 此处请屏蔽外层循环后开启!!!!!
A=toyuan;




end
x=AA;
x1=toyuan;
x=double(x);
x1=double(x1);
for i=1:256;
for j=1:256;
MYa(i,j)=x(i,j)^2; %after filtering's single
MYb(i,j)=x(i,j)-x1(i,j);
end
end
d=0;
e=0;
for i=1:256;
for j=1:256;
d=d+MYa(i,j);
e=e+MYb(i,j)*MYb(i,j);
end
end
f=log10(d/e);
g=10*f ;
myinforarray(w)=myinfor;
mypsnrarray(w)=uint8(g);
w=w+1;


end


figure,plot(myinforarray);
figure,plot(mypsnrarray);

分享到:
评论

相关推荐

    代码 人员疏散过程建模仿真代码

    代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真...

    代码 强插型有优先级的M_M_m排队系统仿真代码

    代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队...

    光纤光栅matlab仿真代码

    本资源包含多个光纤光栅的MATLAB仿真代码,这些代码可以帮助用户深入理解光纤光栅的工作原理,以及相关参数对光栅性能的影响。 1. **光纤光栅基本概念**: 光纤光栅(Fiber Bragg Grating,FBG)是通过在光纤内部...

    C++机器人仿真代码.zip

    C++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人...

    仿真代码,可以直接用的代码

    在IT行业中,仿真代码是一种非常重要的工具,尤其在软件开发、系统设计以及科研等领域。这里的标题和描述提及的“仿真代码,可以直接用的代码”暗示我们这是一个可以直接运行的代码库,用于进行某种形式的模拟或仿真...

    Robocup仿真救援代码

    Robocup仿真救援代码是针对Robocup Rescue仿真竞赛的软件开发项目。这个竞赛是Robocup国际机器人足球大赛的一个分支,旨在推动人工智能和机器人技术在灾难救援领域的应用。在Robocup仿真救援比赛中,参赛队伍需要...

    足球机器人仿真代码 C++

    【足球机器人仿真代码 C++] 是一个使用C++编程语言实现的项目,旨在通过软件模拟足球比赛中的机器人行为,包括抢球、发球和射门等关键动作。在计算机科学领域,这种模拟通常属于机器人控制算法和游戏引擎开发的范畴...

    演化博弈仿真代码

    在这个特定的压缩包文件中,包含了一个名为"yanhuaboyi.txt"的文本文件,我们可以推测这可能是用某种编程语言编写的演化博弈的仿真代码。 演化博弈的核心思想是模仿生物进化过程中的自然选择和适应性,将这种机制...

    通信天线建模与MATLAB仿真分析代码

    通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 ...

    Matlab FMCW雷达仿真代码

    Matlab FMCW雷达仿真代码

    基于Matlab的卫星轨道仿真(源代码).zip

    基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道...

    信道仿真matlab代码范例

    2. Matlab在信道仿真中的应用,包括编写仿真代码和进行仿真实验。 3. 离散信道模型的构建,包括转移概率矩阵的定义和计算。 4. 误差函数(erf)和互补误差函数(erfc)在信道模型中的应用。 5. 对离散信道模型转移...

    多机器人防碰 MATLAB仿真代码.zip

    多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 ...

    Simulink仿真代码生成技术入门到精通

    学习simulink仿真代码生成的好书!作者的写作风格贴合实战经验,具有很强的实操性。

    Simulink仿真及代码生成技术入门到精通 (2).zip

    《Simulink仿真及代码生成技术入门到精通》是一本专为嵌入式开发者准备的指导书籍,旨在帮助读者从基础到高级全面掌握Simulink的使用和代码生成技术。Simulink是MATLAB环境中的一个强大工具箱,主要用于动态系统建模...

    Simulink仿真及代码生成技术入门到精通.pdf_孙忠潇

    《Simulink仿真及代码生成技术入门到精通》围绕Simulink软件的仿真和代码生成技术,从原理上展开阐述,把握整体,注重细节,让读者深刻认识Simulink的运行原理。结构化的章节安排和丰富多彩的案例展示了Simulink在...

    代码 各个城市之间基于sis的传染病matlab仿真代码

    代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市...

    维也纳大学LTE的系统仿真代码

    本文将深入探讨维也纳大学提供的LTE(Long Term Evolution)系统级仿真代码,该代码是基于MATLAB实现的。MATLAB,全称Matrix Laboratory,是一款强大的数学计算软件,常用于数值分析、算法开发、数据可视化以及模型...

    202-秒表(51单片机C语言实例Proteus仿真和代码)

    202-秒表(51单片机C语言实例Proteus仿真和代码)202-秒表(51单片机C语言实例Proteus仿真和代码)202-秒表(51单片机C语言实例Proteus仿真和代码)202-秒表(51单片机C语言实例Proteus仿真和代码)202-秒表(51单片机C语言...

    连续定常系统全维状态观测器simulink仿真m代码

    全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m...

Global site tag (gtag.js) - Google Analytics