实验报告模板szm分析解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:RGB图像分层及分层加强一:实验目的:
(1)了解图像的基本的类型和表示方式。
(2)了解索引图像中图像矩阵与调色板的关系。
(3)掌握RGB图像分层结构及分层加强的方法。
二:实验内容:
(1)熟悉并尝试使用Matlab的命令方式和程序方式处理数组及图像。
(2)用Matlab对RGB图像分层,并将图像的指定层加强。
三:实验过程:
1.3.1 索引图像的操作:
>> [data,map]=imread('c:\lenna256.jpg','jpg');%从C盘中读取jpg图像
>> image(data),colormap(map);%将读取的索引图像显示出来。
图1.1 索引图像
1.3.2 RGB颜色色谱的分层显示:
>> RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
>> R=RGB(:,:,1);
>> G=RGB(:,:,2);
>> B=RGB(:,:,3);
>> subplot(141),imshow(R),title('红色分量');
>> subplot(142),imshow(G),title('绿色分量');
>> subplot(143),imshow(B),title('蓝色分量');
图1.2 RGB颜色色谱的分层显示
1.3.3 RGB图像分层显示和指定层的加强:
打开Matlab实验环境,在File选项中新建M-Flie。并在M-file中写入操作代码:
%将输入的RGB图像分层,并将图像的指定层加强
%输入格式举例:【imageRGB,imageR,imageG,imageB,result】=rgbanalysis('c:\lenna256.jpg','jpg',1)
function [imageRGB,imageR,imageG,imageB,result]=rgbanalysis(image,permission,level); imageRGB=imread(image,permission);
imageRGB=double(imageRGB)/255;
result=imageRGB;
%对图像进行分层提取
imageR=imageRGB(:,:,1);
imageG=imageRGB(:,:,2);
imageB=imageRGB(:,:,3);
%显示结果
subplot(321),imshow(imageRGB),title('原始图像');
subplot(322),imshow(imageR),title('R层灰度图像');
subplot(323),imshow(imageG),title('G层灰度图像');
subplot(324),imshow(imageB),title('B层灰度图像');
%对相应的层进行颜色加强
if level ==1
imageR=imageR+0.2;
end
if level==2
imageG=imageG+0.2;
end
if level==3
imageB=imageB+0.2;
end
result(:,:,1)=imageR;
result(:,:,2)=imageG;
result(:,:,3)=imageB;
imwrite(result,'temp.jpg','jpg');
result=imread('temp.jpg','jpg');
subplot(325),imshow(result),title('色彩增强的结果');
在Matlab命令行中输入如下指令:
>> [imageRGB,imageR,imageG,imageB,result]=rgbanalysis('c:\lenna256.jpg','jpg',1);
可得到实验结果图:
图1.3 RGB分层显示和加强图像
四:试验总结:
本实验是对RGB图像的分层及强化处理,而MATLAB在处理图像的时候是要将图像化为矩阵来处理,所以,在对图像处理前需要将图像转化为RGB图像矩阵,并分层提取,之后才能进行加强操作。在分层加强层时,R、G、B分别是1、2.、3对应该层。
本次实验加深了我们对课本内容的理解,同时加强了我们的学习兴趣,动手对图像进行操作更是从另一方面让我们学习MA TLAB知识。
实验二:LSB信息隐藏和提取
一:实验目的:
(1) 深入理解信息隐藏的相关内容,能进行简单的信息隐写和数字水印操作。
(2)掌握顺序选择像素点及随机选择像素点,将消息嵌入LSB并提取消息。
(3) 掌握相关工具的使用。
二:实验内容:
(1) 顺序选择像素点将消息嵌入LSB并提取消息。
(2) 随机选择像素点将消息嵌入LSB并提取消息。
(3)分析LSB算法的抗攻击能力。
三:实验详细过程:
2.3.1:顺序选择像素点将消息嵌入LSB并提取消息。
新建M-file编写顺序隐藏代码:
%函数功能:本函数将完成在LSB上的顺序信息隐秘
function [ste_cover,len_total]=lsbhide(input,file,output)
%读入图像矩阵
cover=imread(input);
ste_cover=cover;
ste_cover=double(ste_cover);
%将文本文件转换为二进制序列
f_id=fopen(file,'r');
[msg,len_total]=fread(f_id,'ubit1');
%判断嵌入消息量是否过大
[m,n]=size(ste_cover);
if len_total>m*n
error('嵌入消息量过大,请更换图像');
end
%p作为消息嵌入位数计数器
p=1;
for f2=1:n
for f1=1:m
ste_cover(f1,f2)=ste_cover(f1,f2)-mod(ste_cover(f1,f2),2)+msg(p,1);
if p==len_total
break;
end