LSB水印嵌入与提取 您所在的位置:网站首页 实验图片无水印 LSB水印嵌入与提取

LSB水印嵌入与提取

2024-02-23 07:03| 来源: 网络整理| 查看: 265

文章目录 摘要1. 方法1.1 步骤1.2 代码1.3 embed_bit=3(低3位嵌入) 实验现象1.3 实验现象分析1.4 所有实验现象 2. 更新-彩色水印嵌入与提取参考资料 在这里插入图片描述

摘要

数字水印技术是一种保护图像版权的方式。LSB(Least Significant Bits, 最低有效位)技术是空域水印嵌入的一种方式。本文以灰度图像为对象,使用Python实现了任意长度位平面的水印嵌入方式,并且可以提取出水印对应的灰度图像。

1. 方法 1.1 步骤 读取图像(background、watermark)对读取的图像进行嵌入 2.1 划分对应的位平面 2.2 将background的低位位平面替换为watermark的高位位平面 2.3 合成图像(synthesis) ,实现嵌入进行提取并绘制结果

本实验选择的嵌入位数是3

1.2 代码

喜欢的东西都在码里,可以不用本地配置环境,使用百度的飞浆平台进行在线运行。 开源这个代码不求赞,只求你们可以注册帮我拿点算力,或者fork一下项目,我真的很需要算力,所以希望我劝各位年轻人,要讲武德,耗子尾汁,不要白嫖。好卑微的博主呜呜呜。下面第一个Link给的算力多,注册之后点第二个link可以在线运行 百度飞浆邀请注册地址

该项目在线运行地址

import numpy as np import matplotlib.pyplot as plt import cv2 class LSB_Embed(): def __init__(self): pass @staticmethod def get_bitPlane(img): """ 获取灰度图像的8个位平面 :param img: 灰度图像 :return: 8个位平面的矩阵 """ h, w = img.shape flag = 0b00000001 bitPlane = np.zeros(shape=(h, w, 8)) for i in range(bitPlane.shape[-1]): bitplane = img & flag # 获取图像的某一位,从最后一位开始处理 bitplane[bitplane != 0] = 1 # 阈值处理 非0即1 bitPlane[..., i] = bitplane # 处理后的数据载入到某个位平面 flag


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有