基于GS算法的数字水印

  • K2_802315
    了解作者
  • matlab
    开发工具
  • 699.8KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-02-23 11:17
    上传日期
基于GS算法的全息数字水印MATLAB编译包涵图像和源代码。
code.rar
  • code
  • watermark.bmp
    107.3KB
  • FuncFourierHologramReconstruction.m
    703B
  • FuncGenerateRefWave.m
    515B
  • FuncImageWatermark.m
    3.7KB
  • FuncFourierHologramBasedGSAlgorithm.m
    1.2KB
  • FuncGerchbergSaxtonAlgorithm.m
    3.1KB
  • lena.bmp
    768.1KB
  • barbara.bmp
    482.5KB
  • FuncImageExtractWatermark.m
    1.5KB
  • main.m
    1.7KB
内容介绍
function [res_img, hologram_img] = FuncImageWatermark(source_img, watermark_img, strength_coeff, add_channel) %% 本函数实现数字图像水印算法,其中水印图像采用基于GS算法的fourier 全息图像生成 % 1 说明: % 本函数实现数字图像水印算法,其中水印图像采用基于GS算法的fourier 全息图像生成 % 2 算法流程: % step-1:使用GS算法估计水印图像的相位 % step-2:生成fourier 全息图 % step-3:将全息图嵌入到图像的某一个颜色中 % 3 参数说明: % source_img - 宿主图像 % watermark_img - 水印图像:注意:水印图像应该与宿主图像等大小 % strength_coeff - 水印的强度系数,用于在叠加时进行系数加权 % add_channel - 全息图像添加的位置: 'R' 表示红色通道;'G' 表示绿色通道; 'B'表示蓝色通道; % 'L'表示亮度通道 % 4 说明: %% 基于GS算法生成fourier全息图像 hologram_img = FuncFourierHologramBasedGSAlgorithm(watermark_img); figure; imshow(hologram_img, []); title('Fourier全息图') %% 添加水印 res_img = source_img; blur_filter = fspecial('gaussian', 15, 2); if size(source_img, 3) == 3 % 如果是彩色图像 % 添加到红色通道 if add_channel == 'R' || add_channel == 'r' source_img_channel = source_img(:,:,1); % 对该通道进行低通滤波,这里使用中值滤波 % source_img_channel_blur = medfilt2(source_img_channel, [11,11]); source_img_channel_blur = imfilter(source_img_channel, blur_filter); % 将全息图添加到该通道上,强度设置为0.15 source_img_channel_blur = source_img_channel_blur + strength_coeff * hologram_img; % 将该通道恢复到宿主图像中 res_img(:,:,1) = source_img_channel_blur; end % 添加到绿色通道 if add_channel == 'G' || add_channel == 'g' source_img_channel = source_img(:,:,2); % 对该通道进行低通滤波,这里使用中值滤波 % source_img_channel_blur = medfilt2(source_img_channel, [11,11]); source_img_channel_blur = imfilter(source_img_channel, blur_filter); % 将全息图添加到该通道上,强度设置为0.15 source_img_channel_blur = source_img_channel_blur + strength_coeff * hologram_img; % 将该通道恢复到宿主图像中 res_img(:,:,2) = source_img_channel_blur; end % 添加到蓝色通道 if add_channel == 'B' || add_channel == 'b' source_img_channel = source_img(:,:,3); % 对该通道进行低通滤波,这里使用中值滤波 % source_img_channel_blur = medfilt2(source_img_channel, [11,11]); source_img_channel_blur = imfilter(source_img_channel, blur_filter); % 将全息图添加到该通道上,强度设置为0.15 source_img_channel_blur = source_img_channel_blur + strength_coeff * hologram_img; % 将该通道恢复到宿主图像中 res_img(:,:,3) = source_img_channel_blur; end % 添加到亮度通道 if add_channel == 'L' || add_channel == 'l' % 将原图像转化为hsv颜色空间,其中h表示亮度 source_img_lab = rgb2lab(source_img); % lab颜色空间 % 获取亮度分量 source_img_channel = source_img_lab(:,:,1); % 对该通道进行低通滤波,这里使用中值滤波 % source_img_channel_blur = medfilt2(source_img_channel, [11,11]); source_img_channel_blur = imfilter(source_img_channel, blur_filter); % 将全息图添加到该通道上,强度设置为0.15 source_img_channel_blur = source_img_channel_blur + strength_coeff * hologram_img; % 将该通道恢复到宿主图像中 source_img_lab(:,:,1) = source_img_channel_blur; % 将图像从hsv空间转换到rgb空间 res_img = lab2rgb(source_img_lab); end else % 如果是灰度图像 % 对该通道进行低通滤波,这里使用中值滤波 res_img = medfilt2(res_img, [11,11]); % 将全息图添加到该通道上,强度设置为0.15 res_img = res_img + strength_coeff * hologram_img; end end
评论
    相关推荐
    • Matlab合集
      冈萨雷斯数字图像处理MATLAB版.中文版+数字图像处理第二版中文版(冈萨雷斯)+MATLAB-R2014a完全自学一本通+MATLAB R2016a完全自学一本通 素材文件+[模式识别与智能计算:MATLAB技术实现(第2版)].杨淑莹.扫描版
    • MATLAB教程
      MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程MATLAB教程
    • MATLAB
      MATLAB 该项目是在matlab上完成的,涉及创建和移动宇宙飞船和机器人。 太空飞船和机器人是使用Matlab中的简单几何形状创建的,并通过连续变换矩阵进行移动。 这个项目教我如何使用变换矩阵(旋转,平移等)的概念...
    • MATLAB基础
      一本学习matlab的一本好书
    • MATLAB编译器
      基于MATLAB 2018b版本介绍MATLAB编译器。介绍如何利用编译器将MATLAB代码编译为独立应用程序或组件,并在没有安装MATLAB的计算机上进行部署。
    • matlabruntime
      通过奇点容器运行您的matlab项目 可以在没有MATLAB的容器中运行matlab代码。 为此,我们首先需要通过Matlab编译器在本地构建相应的Matlab代码的独立应用程序,然后使用具有Matlab运行时( 的容器)运行该应用程序 )...
    • matlab实现
      matlab实现 matlab实现matlab实现matlab实现matlab实现
    • matlab 教程
      matlab 信号处理资料,里面包含信号处理pdf文档,一些杂乱的程序和命令等
    • matlab教程
      matlab教程,PPT格式,包含 matlab基本知识、matlab入门、matlab作图、线性规划、无约束优化、非线性规划、统计工具箱、差值、微分方程等多项知识点,并且每个知识点独立成为PPT,内还含有matlab信号处理详解等文档...
    • matlab简介
      1.MATLAB 开发环境 1.1 MATLAB 的视窗环境 进入MATLAB之后,会看到一个视窗MATLAB Command Window称为指令视窗,它是你键入指令的地方同时 MATLAB也将计算结果显示在此。 1.2 简易计算 我们先从MATLAB的...