`
- 浏览:
1895743 次
- 性别:
- 来自:
北京
-
部分仿真代码,供参考


%designedbylilizong
%lilizong[at]gmail


a=imread('c:bbb.png');%读入图像
figure,imshow(a),title('原图像');%显示图像
figure,imhist(a);
b=a(:);
[m,n]=size(a);
k=size(b);
%下述操作可以实现像素的显示
c=linspace(0,0,256);
fori=1:k
forj=1:256
if(b(i)==j)
c(j)=c(j)+1;
end
end
end
%以下步骤简单实现读取整个图像的峰值点

max=c(1);
maxi=0;
fori=1:256
if(c(i)>max)
max=c(i);
maxi=i;
end
end
max
maxi




%下面步骤实现对各个峰值的读取
d=c;%作为临时操作数组,以不破坏原数组
emax=linspace(0,0,256);
emaxi=linspace(0,0,256);
a=1;
forj=2:256
if(d(j)>d(j-1)&d(j)>d(j+1)&d(j)~=8888)
emax(a)=d(j);
emaxi(a)=j;
d(j)=8888;
a=a+1;%开始没有想明白,用额外的循环变量
end
end


%下面的程序读取四个高峰值,并进行显示
fmax=linspace(0,0,10);
fmaxi=linspace(0,0,10);
bnum=1;
fori=1:10
fmax(bnum)=emax(1);
forj=2:256
if(emax(j)>fmax(bnum))
fmax(bnum)=emax(j);
fmaxi(bnum)=emaxi(j);
t=j;
end
end
emax(t)=0;
bnum=bnum+1;
end


fori=1:10
fmax(i)
fmaxi(i)
end

%至此峰值已经提出出来了







%在第一个峰值嵌入水印
%首先把小于最大的像素值的都减去2
cc=zeros(m,n);
c=cc(:);

fori=1:k
if(b(i)<fmax(1))
c(i)=b(i)-2;
end
end

watermark=imread('c:watermark.png');
figure,imshow(watermark);
[w1,w2]=size(watermark);
watermark_line=watermark(:);
oo=w1*w2;

%开始嵌入水印

%第一次水印

tt=1;%让tt加1来遍历整个水印图像
fori=1:k
if(c(i)==fmax(1))
if(tt>oo)
tt=1;%如果超出水印的范围从头开始
if(watermark_line(tt)==1)
c(i)=c(i)-1;
end

end
tt=tt+1;
end
end



%第二次水印
tt=1;%让tt加1来遍历整个水印图像
fori=1:k
if(c(i)==fmax(2))
if(tt>oo)
tt=1;%如果超出水印的范围从头开始
if(watermark_line(tt)==1)
c(i)=c(i)-2;
end
end
tt=tt+1;
elseif(c(i)==fmax(2)+1)
if(tt>oo)
tt=1;
if(watermar_line(tt)==1)
c(i)=c(i)-2;
end
end
end
end









%显示嵌入水印的图像


embed=c;
embed=reshape(c,m,n);
figure,imshow(embed,[]),title('嵌入水印的图像');


%提取水印

%提取第一层

fori=1:k
if(c(i)==fmax(2))
watermark(tt)=0;
%tt=tt+1;
%elseif(c(i)==(fmax(1)+1))
%watermark(tt)=0;
%tt=tt+1;
%elseif(c(i)=fmax(1)-1)
%elseif(c(i)=fmax(1)-1)
%watermark(tt)=1;
%tt=tt+1;
%elseif(c(i)=fmax(1)-2)
%watermark(tt)=1;
%tt=tt+1;
%end
else
if(c(i)==fmax(2)+1)
watermark(tt)=0;
else
if(c(i)==fmax(2)-1)
watermark(tt)=1;
else
if(c(i)==fmax(2)-2)
watermark=1;
end
end
end
tt=tt+1;
end
end


%提取第二层


fori=1:k
if(c(i)==fmax(1))
watermark(tt)=0;
tt=tt+1;
elseif(c(i)==(fmax(1)-1))
watermark(tt)=1;
tt=tt+1;
end
end
fori=1:oo
watermark_dect(i)=watermark(i);
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(c(i)==(max-2))
c(i)=c(i)+2;
elseif(c(i)<max-2)
c(i)=c(i)+2;
end
end
dd=reshape(c,m,n);
figure,imshow(dd,[]),title('恢复的图像');



a=imread('c:bbb.png');

x=a;
x1=embed;
x=double(x);
x1=double(x1);
fori=1:256;
forj=1:256;
MYa(i,j)=x(i,j)^2;%afterfiltering'ssingle
MYb(i,j)=x(i,j)-x1(i,j);
end
end
d=0;
e=0;
fori=1:256;
forj=1:256;
d=d+MYa(i,j);
e=e+MYb(i,j)*MYb(i,j);
end
end
f=log10(d/e);
g=10*f
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真代码代码 人员疏散过程建模仿真...
代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队系统仿真代码代码 强插型有优先级的M_M_m排队...
本资源包含多个光纤光栅的MATLAB仿真代码,这些代码可以帮助用户深入理解光纤光栅的工作原理,以及相关参数对光栅性能的影响。 1. **光纤光栅基本概念**: 光纤光栅(Fiber Bragg Grating,FBG)是通过在光纤内部...
C++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人仿真代码.zipC++机器人...
在IT行业中,仿真代码是一种非常重要的工具,尤其在软件开发、系统设计以及科研等领域。这里的标题和描述提及的“仿真代码,可以直接用的代码”暗示我们这是一个可以直接运行的代码库,用于进行某种形式的模拟或仿真...
3. **传感器模型**:为了模拟真实的机器人,代码需要处理来自各种传感器(如摄像头、激光雷达、红外传感器)的数据。这部分代码会处理这些模拟数据,并将其转化为机器人可以理解的信息。 4. **控制系统**:这部分...
【足球机器人仿真代码 C++] 是一个使用C++编程语言实现的项目,旨在通过软件模拟足球比赛中的机器人行为,包括抢球、发球和射门等关键动作。在计算机科学领域,这种模拟通常属于机器人控制算法和游戏引擎开发的范畴...
在这个特定的压缩包文件中,包含了一个名为"yanhuaboyi.txt"的文本文件,我们可以推测这可能是用某种编程语言编写的演化博弈的仿真代码。 演化博弈的核心思想是模仿生物进化过程中的自然选择和适应性,将这种机制...
通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 通信天线建模与MATLAB仿真分析代码 ...
Matlab FMCW雷达仿真代码
基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道仿真(源代码) 基于Matlab的卫星轨道...
文档中提及的“Matlab仿真”和“附件”可能意味着仿真代码是独立的文件,与主体文档分开提供。 在标签部分,“信道仿真 matlab 代码 范例”,标签简单地重复了标题中的主要内容,进一步确认了文档的内容与信道仿真...
本文将深入探讨TDOA算法的基本原理,并通过MATLAB仿真代码进行详细解析。 1. TDOA算法简介: TDOA算法基于多基站接收信号的时间差信息,通过三角定位原理计算目标位置。假设存在三个或更多个基站,当信号同时从目标...
多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 MATLAB仿真代码.zip多机器人防碰 ...
"基于PID算法与虚拟结构构建的多智能体控制系统研究——大量仿真代码及三种仿真效果分析的参考文献集锦",基于PID和结构的多智能体控制。 仿真代码量大,有3种仿真效果,包含相应的参考文献。 #python仿真代码 ,...
代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市之间基于sis的传染病matlab仿真代码代码 各个城市...
本文将深入探讨维也纳大学提供的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语言...
全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m代码连续定常系统全维状态观测器simulink仿真m...
113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口通讯(51单片机C语言实例Proteus仿真和代码)113-串口...