{"id":26811570,"url":"https://github.com/tim-janik/imagewmark","last_synced_at":"2025-03-30T01:39:09.572Z","repository":{"id":283173286,"uuid":"948037908","full_name":"tim-janik/imagewmark","owner":"tim-janik","description":"Resilient watermarking of digital images","archived":false,"fork":false,"pushed_at":"2025-03-18T22:58:39.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-03-18T23:28:37.384Z","etag":null,"topics":["digital-watermarking","image-processing","image-watermarking","watermark-detection","watermark-embedding"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tim-janik.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-13T16:38:36.000Z","updated_at":"2025-03-18T22:58:43.000Z","dependencies_parsed_at":"2025-03-18T23:38:46.164Z","dependency_job_id":null,"html_url":"https://github.com/tim-janik/imagewmark","commit_stats":null,"previous_names":["tim-janik/imagewmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fimagewmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fimagewmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fimagewmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tim-janik%2Fimagewmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tim-janik","download_url":"https://codeload.github.com/tim-janik/imagewmark/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246266274,"owners_count":20749754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digital-watermarking","image-processing","image-watermarking","watermark-detection","watermark-embedding"],"created_at":"2025-03-30T01:39:09.041Z","updated_at":"2025-03-30T01:39:09.547Z","avatar_url":"https://github.com/tim-janik.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# IMAGEWMARK\n\nInvisible watermarking for digital images.\n\n\n## SYNOPSIS\n\n`imagewmark {add|get} [OPTIONS] \u003cinput.image\u003e [output.image] [watermark]`\n\n\n## DESCRIPTION\n\nImagewmark is a Free Software program to add an encrypted invisible digital watermark to an\nimage. Using the same encryption key, the watermark can be reconstructed from cropped, scaled\nor compressed variants of the watermarked image, without knowledge of the original source\n(blind decoding).\n\nThe methods used for watermark embedding and extraction are based on:\n\n*\"Local Geometric Distortions Resilient Watermarking Scheme Based on Symmetry\"* by\nZehua Ma, Weiming Zhang, Han Fang, Xiaoyi Dong, Linfeng Geng, Nenghai Yu.\nhttps://arxiv.org/abs/2007.10240\n\n\n## INSTALLATION\n\nTo build and run imagewmark, the following package dependencies need to be provided:\n\n\t# Packages needed for the C++ helpers and Python routines\n\tapt install build-essential libgcrypt20-dev libopenimageio-dev \\\n\t  python3-numpy python3-scipy python3-matplotlib python3-imageio \\\n\t  python3-opencv python3-skimage\n\t# Build C++ helpers\n\tmake\n\t# Test invocation\n\tsrc/imagewmark --help\n\n### DOCKER\n\nA dockerized runtime can be created and used as described below.\nTo pass image files in and out of the eocker environment, a `/data` volume needs\nto be provided for `docker run`.\n\n\t# Create docker image from source repositors\n\tdocker build -f Dockerfile -t imagewmark-0 .\n\t# Run the dockerized executable, using the current dir for image io\n\tdocker run -ti --rm -v $PWD:/data imagewmark-0 add in.png out.png 1234\n\tdocker run -ti --rm -v $PWD:/data imagewmark-0 get out.png\n\n\n## EXAMPLES\n\nAdd a watermark to an existing image, note that watermarks shorter than 128 bits\nare repeated to fill up to 128 bits:\n\n\tsrc/imagewmark add input.png output.png babe\n\nExtract a previously embedded watermark:\n\n\tsrc/imagewmark get output.png\n\tbabebabebabebabebabebabebabebabe JSD=99.94%\n\nUsing an encryption key to conceal the watermark payload:\n\n\t# Create a private key to encrypt and decrypt the payload\n\tsrc/imagewmark gen-key mysecret.key\n\t# Utilize the key during embedding and extraction\n\tsrc/imagewmark add --key mysecret.key in.png out.png 12341234123412341234123412341234\n\tsrc/imagewmark get --key mysecret.key out.png\n\t12341234123412341234123412341234 JSD=99.96% pixels_mscn= -6.9952832164817345 … 6.9973355487490725\n\nFor automation, the watermark extraction supports result generation in JSON format:\n\n\t# Write watermark detection results into watermarks.json\n\tsrc/imagewmark get --key mysecret.key --json watermarks.json out.png\n\tcat watermarks.json      # shortened output\n\t{\n\t  \"width\": 1024, \"height\": 1024,\n\t  \"filename\": \"out.png\",\n\t  \"matches\": [ {\n\t      \"bits\": \"12341234123412341234123412341234\",\n\t      \"jsd\": 0.9996185779935369,\n\t      \"error\": 0.114406\n          } ]\n\t}\n\n\n## LICENSE\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see \u003chttps://www.gnu.org/licenses/\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-janik%2Fimagewmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftim-janik%2Fimagewmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftim-janik%2Fimagewmark/lists"}