MATLAB - Matlab的优势和特点:
(1)友好的工作平台和编程环境
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
出现的错误及进行出错原因分析。
(2)简单易用的程序语言
Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C+语言极为相似,而且更加简单,更加符合科技人员对数字表达式的书写
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB之所以能够深入到科学研究及
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
计算各个领域的重要原因。
LSB算法水印安全性测试
LSB算法水印源码
1、嵌入源码
clear all;
% 保存开始时间
start_time=cputime;
% 读入原图像
file_name='1.jpeg';
[cover_object,map]=imread(file_name);
% 读入水印图像
file_name='2.jpeg';
[message,map1]=imread(file_name);
message1=message;
message=double(message); %%转换为double数
message=fix(message./2); %%转换为0,1组成的矩阵
message=uint8(message); %%转换为uint8数
% 原图的行数与列数
Mc=size(cover_object,1); %原图的行数
Nc=size(cover_object,2); %原图的列数
% 水印的行数与列数
Mm=size(message,1); %水印的行数
Nm=size(message,2); %水印的列数
% 将水印扩展为原图像大小,并写入watermark
for ii = 1:Mc
for jj = 1:Nc
watermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1);
end
end
% 将原图的最低有效位值换为水印的值
watermarked_image=cover_object;
for ii = 1:Mc
for jj = 1:Nc
watermarked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj));
end
end
% 将嵌入水印图像写入lsb_watermarked.jpeg
imwrite(watermarked_image,'lsb_watermarked.jpeg','jpeg');
% 显示运行时间
elapsed_time=cputime-start_time,
% 显示嵌入水印图像
figure(1)
subplot(1,2,1)
imshow(watermarked_image,[])
title('嵌入水印图像')
subplot(1,2,2)
imshow(cover_object,[])
title('原图像')
%%扩展后水印
for ii = 1:Mc
for jj = 1:Nc
watermark1(ii,jj)=message1(mod(ii,Mm)+1,mod(jj,Nm)+1);
end
end
figure(2)
imshow(watermark1,[])
title('扩展后的水印')
figure(3)
imshow(message1,[])
title('原水印')
2、提取源码
clear all;
% 保存开始时间
start_time=cputime;
% 读入嵌入水印图像
file_name='lsb_watermarked.jpeg ';
watermarked_image=imread(file_name);
% 嵌入水印图像的行数与列数
Mw=size(watermarked_image,1); %嵌入水印图像行数
Nw=size(watermarked_image,2); %嵌入水印图像列数
%读入原始水印
file_name='2.jpeg';
orig_watermark=imread(file_name);
%%原始水印的行数与列数
Mm=size(orig_watermark,1); %水印的行数
Nm=size(orig_watermark,1); %水印的列数
% 用嵌入水印图像的最低有效位重建水印
for ii = 1:Mw
for jj = 1:Nw
watermark(ii,jj)=bitget(watermarked_image(ii,jj),1);
end
end
% 将提取水印变为原始水印大小
watermark=2*double(watermark);
for ii = 1:Mm-1
for jj = 1:Nm-1
watermark1(ii+1,jj+1)=watermark(ii,jj);
end
end
watermark1(1,1)=watermark(Mm,Nm);
% 显示运行时间
elapsed_time=cputime-start_time,
% 显示提取水印与原始水印
figure(4)
subplot(1,2,1)
imshow(watermark1,[])
title('提取水印')
subplot(1,2,2)
imshow(orig_watermark,[])
title('原始水印')
3、中值滤波处理
二维中值滤波器对图像的处理是用一个二维的窗口去依次成块地覆盖图像中的像素,用覆盖的那些像素值的中值去取代窗口正中的那个像素的值。假设图像的大小为K×L,在用滤波器处理图像之前还要进行点扩展,以保证输出的图像大小与原来的一致,扩展点的个数取决于图像的大小和窗口的大小,下面是一个图像大小为3×3,窗口大小也为3×3的点扩展的图示,如图7-12所示。
图7-12 二维中值滤波像素点扩展图示
下图是lenna的原始图像和做7×7的中值滤波后的结果 :
图7-13 中值滤波结果
程序源码如下:
%文件名:median16.m
%目的:完成对图像的中值滤波
%引用举例: image_opd=median16('lsb_watermarked.bmp',3);
%参数说明:
%image 待做中值滤波的图像
%x 二维中值滤波器的窗口尺寸参数,窗口大小为x*x,这里的二维中值滤波器为常规中值滤波器
function image_opd=median16(image,a);
A=imread(image);
[row,col]=size(A);
A=double(A)/65535;
original=A;
B=reshape(A,row,col);
C= medfilt2(B,[a a]);
col=col/3;
image_opd=reshape(C,row,col,3);
imwrite(uint8(image_opd*65535),'temp2.png','BitDepth',16);
%以png格式存储
运行LSB提取水印图片
中值滤波处理后,水印仍清晰可见。
分别选取五组图片,进行实验,将实现结果图片粘贴,分别命名为3-1、3-2、3-3、3-4、3-5。
4、加盐噪声后提取水印(椒盐噪声是图像中经常见到的一种杂讯,它是一种随机的白点或者黑点,可通过中值滤波去除噪声)
椒盐噪声代码如下:
M=imread('lsb_watermarked.jpeg');
P2=imnoise(M,'salt & pepper',0.002)
subplot(3,3,3)
imshow(P2)
title('salt & pepper noise');
让可看到水印
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
。
分别选取五组图片,进行实验,将实现结果图片粘贴,分别命名为3-1、3-2、3-3、3-4、3-5。
5、JPEG压缩水印图像
压缩后,水印无法提取。
分别选取1组图片,进行实验,将结果实现图片粘贴。
� EMBED PBrush ���
� EMBED PBrush ���