我的一个matlab程序,发现运行后出现了问题,求大神解决
clc%清屏clear%清空变量closeall%关闭已打开图像%读入载体图像并显示cover_object=imread('orign.jpg');ifndims(co...
clc %清屏
clear %清空变量
close all %关闭已打开图像
% 读入载体图像 并显示
cover_object=imread('orign.jpg');
if ndims(cover_object)==3 %如果是rbg图像,则转化为灰度图像
cover_object=rgb2gray(cover_object);
end
figure;imshow(cover_object); %显示
title('载体图像');
% 读入水印图像 并显示
message=imread('shuiyin.jpg');
if ndims(message)==3 %如果是rbg图像,则转化为灰度图像
message=rgb2gray(message);
end
[Mm,Nm]=size(message);
message=double(message);
message=round(message./256); %转化为bit信息流,以便隐写
message=uint8(message);
figure;imshow(256*message); %显示
title('待隐藏信息');
%调用yinxie函数实现信息隐写
watermarked_image=yinxie(cover_object,message);
figure;imshow(watermarked_image,[])
title('已嵌入隐写信息的图像') %显示
% 程序代写&算法设计,联系qq:380238062,转载时请保留
%调用tiqu函数实现信息提取
watermark=tiqu(watermarked_image,Mm,Nm);
figure;imshow(watermark,[])%显示提取图像
title('提取后信息')
function watermarked_image=yinxie(cover_object,message);
% 获取载体图像的大小
[Mc,Nc]=size(cover_object);
% 获取水印图像的大小
[Mm,Nm]=size(message);
length_message=Mm*Nm;%信息长度
message(Mc,Nc)=0;
watermarked_image=cover_object;
%每一比特秘密信息都用载体图像的一个像素负载,如果秘密比特与像素灰度
%值的最低位相同,则不作修改;否则,若原始灰度值为奇数,则减1,若为
%偶数,则加1
% mod(cover_object(ii,jj),2) 获取图像cover_object处像素值的最低位
for ii = 1:Mc
for jj = 1:Nc
if mod(cover_object(ii,jj),2)==message(ii,jj)%判断是否相等
continue; %若相等,不作修改
else %否则
if mod(cover_object(ii,jj),2)==0 %若为偶,则加1
watermarked_image(ii,jj)=cover_object(ii,jj)+1;
else %若为奇,则减1
watermarked_image(ii,jj)=cover_object(ii,jj)-1;
end
end
end
end
错误提示:
Function definitions are not permitted at the prompt or in scripts. 展开
clear %清空变量
close all %关闭已打开图像
% 读入载体图像 并显示
cover_object=imread('orign.jpg');
if ndims(cover_object)==3 %如果是rbg图像,则转化为灰度图像
cover_object=rgb2gray(cover_object);
end
figure;imshow(cover_object); %显示
title('载体图像');
% 读入水印图像 并显示
message=imread('shuiyin.jpg');
if ndims(message)==3 %如果是rbg图像,则转化为灰度图像
message=rgb2gray(message);
end
[Mm,Nm]=size(message);
message=double(message);
message=round(message./256); %转化为bit信息流,以便隐写
message=uint8(message);
figure;imshow(256*message); %显示
title('待隐藏信息');
%调用yinxie函数实现信息隐写
watermarked_image=yinxie(cover_object,message);
figure;imshow(watermarked_image,[])
title('已嵌入隐写信息的图像') %显示
% 程序代写&算法设计,联系qq:380238062,转载时请保留
%调用tiqu函数实现信息提取
watermark=tiqu(watermarked_image,Mm,Nm);
figure;imshow(watermark,[])%显示提取图像
title('提取后信息')
function watermarked_image=yinxie(cover_object,message);
% 获取载体图像的大小
[Mc,Nc]=size(cover_object);
% 获取水印图像的大小
[Mm,Nm]=size(message);
length_message=Mm*Nm;%信息长度
message(Mc,Nc)=0;
watermarked_image=cover_object;
%每一比特秘密信息都用载体图像的一个像素负载,如果秘密比特与像素灰度
%值的最低位相同,则不作修改;否则,若原始灰度值为奇数,则减1,若为
%偶数,则加1
% mod(cover_object(ii,jj),2) 获取图像cover_object处像素值的最低位
for ii = 1:Mc
for jj = 1:Nc
if mod(cover_object(ii,jj),2)==message(ii,jj)%判断是否相等
continue; %若相等,不作修改
else %否则
if mod(cover_object(ii,jj),2)==0 %若为偶,则加1
watermarked_image(ii,jj)=cover_object(ii,jj)+1;
else %若为奇,则减1
watermarked_image(ii,jj)=cover_object(ii,jj)-1;
end
end
end
end
错误提示:
Function definitions are not permitted at the prompt or in scripts. 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询