Skip to main content

Blind Watermark in Python

Project description

blind-watermark

Blind watermark based on wavelet transform.

PyPI Build Status codecov License Python Platform Downloads Join the chat at https://gitter.im/guofei9987/blind_watermark

install

pip install blind-watermark

For the current developer version:

git clone git@github.com:guofei9987/blind_watermark.git
cd blind_watermark
pip install .

How to use

How to embed watermark:

from blind_watermark import WaterMark

bwm1 = WaterMark(password_wm=1, password_img=1)
# 读取原图
bwm1.read_img('pic/ori_img.jpg')
# 读取水印
bwm1.read_wm('pic/watermark.png')
# 打上盲水印
bwm1.embed('output/embedded.png')

How to extract watermark

bwm1 = WaterMark(password_wm=1, password_img=1)
# 注意需要设定水印的长宽wm_shape
bwm1.extract(filename='output/embedded.png', wm_shape=(128, 128), out_wm_name='output/extracted.png', )

demos:

origin image watermark
origin_image watermark
image embedded with watermark extracted watermark
打上水印的图 提取的水印

Attack on the embedded image

attack method image after attack extracted watermark
Rotate 45 Degrees
旋转攻击.py
旋转攻击
Many Coverage
多遮挡攻击.py
多遮挡攻击 多遮挡_提取水印
50% Horizontal Crop
横向裁剪攻击.py
横向裁剪攻击
50% Vertical Crop
纵向裁剪攻击.py
纵向裁剪攻击 纵向裁剪
Resize(1200X1920->600X800)
缩放攻击.py
缩放攻击
Pepper Noise
椒盐击.py
椒盐攻击
Brightness 10% Up
亮度调高攻击.py
亮度调高攻击
Brightness 10% Down
亮度调暗攻击.py
亮度调低攻击

embed array of bits

As demo, we embed 6 bytes data:

wm = [True, False, True, True, True, False]

Embed:

from blind_watermark import WaterMark

bwm1 = WaterMark(password_img=1, password_wm=1)
bwm1.read_ori_img('pic/ori_img.jpg')
bwm1.read_wm([True, False, True, True, True, False], mode='bit')
bwm1.embed('output/embedded.png')

Extract:

bwm1 = WaterMark(password_img=1, password_wm=1, wm_shape=6)
wm_extract = bwm1.extract('output/打上水印的图.png', mode='bit')
print(wm_extract)

Notice that wm_shape (shape of watermark) is necessary

The output wm_extract is an array of float. set a threshold such as 0.5.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blind_watermark-0.0.2.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blind_watermark-0.0.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file blind_watermark-0.0.2.tar.gz.

File metadata

  • Download URL: blind_watermark-0.0.2.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for blind_watermark-0.0.2.tar.gz
Algorithm Hash digest
SHA256 c4b1d8d690858c3c78c71e4055bc01b293c3172789b097335902f2a4ecdc902a
MD5 7490ebc3d6ecf627014d5e85217ca5f7
BLAKE2b-256 90cca516b40e89e0899c9067dd1fa9ba71d34c3476d622e2386271e0ae0fe059

See more details on using hashes here.

File details

Details for the file blind_watermark-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: blind_watermark-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for blind_watermark-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 afa6cc00e2c1fac2f43a85b6263d7458280243160004f3b12e3966e1be2db57b
MD5 7fb27d3a796123c7a2adce4db3354c73
BLAKE2b-256 351b5521762fb0af6c2af8a8d5ee4dcaeb4af3ef2b1e2962bad63369cff55427

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page