【图像隐写】RS码数字水印嵌入与提取【含Matlab源码 2692期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、RS码简介

 RS编码是一种多进制编码技术,适合于存在突发错误的通信系统。RS解码技术相对比较成熟,但由RS码和卷积码构成的级联码在性能上与传统的卷积码相比较提高不多,故在未来第三代移动通信系统采用的可能性不大...
   RS是“Reed-Solomon”(里德-所罗门)的缩写。RS码是一种线性分组循环码,它以长度为n的一组符号(symbols)为单位处理(通常n=8bit,称为编码字),组中的n个符号是由K个欲传输的信息符号按一定关联关系生成的。由于n个符号中还应包含误码保护信息,所以要求k<n编码形式用(n,k)表示,因此,当n=8时,共有28=256种符号,用十进制表示的符号范围是0-255。这256种符号组成一个有限域(称伽罗华域)GF(28)。一般地,当有限域是二元域GF(2)的扩域时用GF(2m)表示。在GF(2m)域中,能纠正T个错误的(n,k)RS码。所谓1个符号的错误可以是指符号中的1bit发生错误,也可以指符号中的若干bit甚至所有mbit都发生错误。可见,RS码具有极强的随机错误和突发错误纠正能力。正因为RS码性能优良,同时由于近年来VLSI技术发展,使原来非常复杂、难以实现的解码电路集成化,目前,功能很强的、长RS码的编码器芯片也商业化了。因此RS码得到广泛应用。

·1960 年 MIT Lincoln Lab 的 Reed 和 Solomon 在发表了论文“Polynomial Codes over Certain Finite Fields”
· RS 码是一种效率很高的分组码,RS 码是一类非二进制 BCH 码, 每个符号由 m 比特组成。
·对于给定n,k的分组码,没有其他码能比RS码的最小距离更大。
·既适用于纠随机误码,也特别适用于纠突发误码。
·任何一种缩短的 RS 码仍是一个最大码。
·RS 码的精确纠错性能是由码的最小距离和权分布决定的, 非常便于根据指标设计RS 码
举例:RS(255,239)
n=255, m=8
k=239, t=8

⛄二、部分源代码

clc;clear;
%文件名的处理
disp(‘1 lena’);
disp(‘2 Baboon’);
choiceimage=input(‘选择载体图像(1或2) :’);
if choiceimage==1,
orignal=‘lena.jpg’;
else
orignal=‘Baboon.jpg’;
end
mark=‘水印图像.bmp’;
goalfile=‘imagewatermark.jpg’;
k1=0.02; %k1是强纹理特性的小波块的嵌入强度
k2=0.007; %k2是弱纹理特性的小波块的嵌入强度
%-----------------------%
A=imread(orignal); %A为原图,B是水印
A_double=double(A);
B=imread(mark);
B_double=double(B);
%------置乱水印图片----------------------%
B_arnold=ht_arnold(B_double);
%--------对水印图像进行RS码编码-----------%
T=rers(B_arnold); %RS编码前的预处理,二进制转十进制,成为(115,9)的矩阵
B_RS=zeros(115,15);
B_RS8=uint8(B_RS);
for i=1:115
temp=T(i,:);
temp8=uint8(temp);
msg=gf(temp8,4);
code=rsenc(msg,15,9);
code2=code.x;
B_RS8(i,:)=code2;
B_RS=double(B_RS8);
end
[r,l]=size(B_RS);
B_RS=reshape(B_RS,[rl,1]);
BB=dec2bin(B_RS)-48;
BB=reshape(BB,[100,69]);
%--------------开始嵌入水印---------------%
[a,b]=size(BB);
X=A_double; %X是用来保存嵌入水印的图像的
[cA,cH,cV,cD]=dwt2(A_double,‘db1’); %对原图进行小波变换
[m,n]=size(cA);
cAA=cA;
M=cA;
BLOCK=zeros(4,9); %构建BLOCK用来存放小波块
for i=2 :2:2
a,
for j=3:3:3b,
if BB(i/2,j/3)==0,
q=-1;
else
q=1;
end
M(i,j)=(cA(i-1,j-1)+cA(i-1,j)+cA(i-1,j+1)+cA(i,j-1)+cA(i,j+1)+cA(i+1,j-1)+cA(i+1,j)+cA(i+1,j+1))/8; %用均值代替中间的值
BLOCK=[cA(i-1,j-1) cA(i-1,j) cA(i-1,j+1) cA(i,j-1) M(i,j) cA(i,j+1) cA(i+1,j-1) cA(i+1,j) cA(i+1,j+1)
cH(i-1,j-1) cH(i-1,j) cH(i-1,j+1) cH(i,j-1) cH(i,j) cH(i,j+1) cH(i+1,j-1) cH(i+1,j) cH(i+1,j+1)
cV(i-1,j-1) cV(i-1,j) cV(i-1,j+1) cV(i,j-1) cV(i,j) cV(i,j+1) cV(i+1,j-1) cV(i+1,j) cV(i+1,j+1)
cD(i-1,j-1) cD(i-1,j) cD(i-1,j+1) cD(i,j-1) cD(i,j) cD(i,j+1) cD(i+1,j-1) cD(i+1,j) cD(i+1,j+1)]; %小波块
num=0;
for u=1:36
if BLOCK(u)>0,
num=num+1;
end
end
if num>20,
cAA(i,j)=M(i,j)+q
k1M(i,j);
else
cAA(i,j)=M(i,j)+q
k2*M(i,j);
end
end
end
X=idwt2(cAA,cH,cV,cD,‘db1’); %小波逆变换
X8=uint8(X); %嵌入水印后的图像
imwrite(X8,‘imagewatermark.jpg’);
%-------------------水印的提取
W_RS=tiqu(X,BB);
W_RS=reshape(W_RS,[1725,4]);
%------------RS解码-------------------%
Wa=DECRS(W_RS);
%-----------图像Arnold恢复------------%
W=Ahuifu(Wa);
%------------图像显示------------------%
subplot 221
imshow(A);title(‘原始图像’);
subplot 222
imshow(B);title(‘水印’);

subplot 223
imshow(X8);title(‘嵌入水印后的图像’);
subplot 224
imshow(W);title(‘提取出的水印’);
figure(2)
subplot 121
imshow(B);
subplot 122
imshow(B_arnold);

%--------------评价参数------------------%
disp(‘嵌入水印后与原图的psnr’);
psnr=PSNR(A,X8)
disp(‘不受攻击时提取出的水印与水印图像的NC’);
NC=NC(B,W)

%%------------攻击测试-------------------%
dotap = 0;
%--------------------------------------%
disp(’ 水印攻击测试 ');
disp(‘0 退出 1 不受攻击’);
disp('2 椒盐噪声攻击 3 高斯噪声攻击 ');
disp(‘4 右下角剪切1/4 5 左上角剪切1/8’);
disp(‘6 中间横向剪切1/4 7 JPEG压缩攻击’);
disp(‘8 中值滤波攻击 9 旋转攻击’);
while dotap == 0
attack=input(‘please input a number 1-11:’);
if attack == 0
dotap = 1;
disp(‘程序结束’);
else

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]薛德文.基于变换域的可逆图像水印算法研究[D].哈尔滨工业大学

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值