实验报告模板szm分析解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档