コード例 #1
0
class WatermarkerUI(Tk):
    def __init__(self):
        # Initialize Tk
        super().__init__()

        # Create watermarker variable to contain watermarker object when initialized
        self.watermarker = None
        # Initialize Tk window (self is window now)
        self.title("Watermarker")
        # Style the widgets - import everything from ttk (tkinter.ttk *), otherwise not working
        # self.style = Style(self)
        # print(self.style.theme_names())
        # print(self.style.theme_use("vista"))

        self.config(padx=40, pady=40)
        # Canvas for the image
        #self.canvas = Canvas(width=300, height=300)
        #self.canvas.grid(column=2, row=0)

        # Main UI
        self.label_text = Label(text="Watermark text:", font=("Segoe UI", 12))
        self.label_text.grid(column=0, row=1)
        self.entry_text = Entry()
        self.entry_text.grid(column=1, row=1, columnspan=2, sticky="EW")
        self.button_batch = Button(text="Batch images",
                                   command=self.batch_watermark)
        self.button_batch.grid(column=1, row=2, columnspan=1)
        self.button_load = Button(text="Watermark one image",
                                  command=self.add_watermark)
        self.button_load.grid(column=2, row=2, columnspan=1)

        # self.mainloop()

    def initialize_watermaker(self):
        text = self.entry_text.get()
        # Create Watermarker object and pass it text from entry_text
        self.watermarker = Watermarker(text)

    def add_watermark(self):
        self.initialize_watermaker()
        # Open image
        self.watermarker.open_image()

    def batch_watermark(self):
        self.initialize_watermaker()
        # Open directory
        self.watermarker.open_directory()
コード例 #2
0
ファイル: embed.py プロジェクト: KWMalik/tau
#!/usr/bin/python
import sys
import os
from optparse import OptionParser
from watermarker import Watermarker
from scipy import misc

parser = OptionParser()
parser.add_option("-o", "--outfile", dest="outfile", default = None,
    help="output filename", metavar="FILE")
parser.add_option("-k", dest="k", type=int, default=6,
    help="The k value to use in embedding (default is 6)")

if __name__ == "__main__":
    (options, args) = parser.parse_args()
    if len(args) != 2:
        parser.error("Usage: <input file> <payload>")
    infile, payload = args
    if len(payload) > 6:
        parser.error("Payload too long (up to 6 bytes)")
    if not options.outfile:
        options.outfile = "%s-%s.png" % (os.path.basename(infile).split(".")[0], payload)
    w = Watermarker(6, 4)
    misc.imsave(options.outfile, w.embed(misc.imread(infile), payload, options.k))
    print "Created %s" % (options.outfile,)


コード例 #3
0
            print "Minimum JPG quality:", test_jpg(w, out)
            print "Max Gaussian sigma:", test_filter(
                w, out, "gauss-%s.png", gaussian_filter,
                [i / 10.0 for i in range(1, 50)])
            print "Max Laplacian of Gaussian sigma:", test_filter(
                w, out, "log-%s.png", gaussian_laplace,
                [i / 10.0 for i in range(1, 50)])
            print "Max tv-denoising weight:", test_filter(
                w, out, "tv-%s.png", tv_denoise, range(50, 1000, 25))
            print "Max noise ratio: ", test_filter(
                w, out, "noise-%s.png", add_noise,
                [i / 20.0 for i in range(1, 20)])
            print "Max random block coverage: ", test_filter(
                w, out, "blocks-%s.png",
                lambda img, k: add_blocks(img, k, 50, 50),
                [i / 20.0 for i in range(1, 20)])

            for flt in [
                    "contour", "detail", "edge_enhance", "edge_enhance_more",
                    "emboss", "find_edges", "smooth", "smooth_more", "sharpen"
            ]:
                print "Max iterations of %r:" % (flt, ), test_recursive_filter(
                    w, out, "%s-%%s.png" % (flt, ),
                    lambda img: misc.imfilter(img, flt), range(1, 30))
            print


if __name__ == "__main__":
    w = Watermarker(6, 4)
    run_tests(w, "123456", [2, 4, 6, 8])
コード例 #4
0
 def initialize_watermaker(self):
     text = self.entry_text.get()
     # Create Watermarker object and pass it text from entry_text
     self.watermarker = Watermarker(text)
コード例 #5
0
ファイル: example.py プロジェクト: dare-mcadewole/watermarker
# Created by: Dare McAdewole <*****@*****.**>
from watermarker import Watermarker
from pathlib import Path

if __name__ == '__main__':
    if (Watermarker.watermark('.../gordon.png', '.../echwoodd/lo.png',
                              '.../echwood-steve.png',
                              Watermarker.Position.top_right)):
        print('Image watermarked successfully!')
    else:
        print('Image could not be watermarked')
コード例 #6
0
ファイル: simple.py プロジェクト: semanticparsing/tau
import os
import numpy
from scipy import misc
from watermarker import Watermarker
from test import test_jpg, add_blocks, add_noise, test_filter, test_recursive_filter
from scipy.ndimage.filters import gaussian_filter, gaussian_laplace, uniform_filter, median_filter
from skimage.filter import tv_denoise


w = Watermarker(6, 4)
src = misc.imread("scans/facescan.png")
print w.extract(src)
print test_jpg(w, src)

#src = misc.lena()
#markers = [Watermarker(6, 4, seed = seed) for seed in range(50)]
#text = "the quick brown fox jumped over the lazy dog and laughed a great deal"
#
#for i, w in enumerate(markers):    
#    src = w.embed(src, text[i:i+6])
#    print "%s\t%s" % (i+1, test_jpg(markers[0], src))


#out = w2.embed(out, "789012", k = 4, tv_denoising_weight = 0)
#out2 = misc.imread("orig.png")
#out2 = misc.imread("facescan.png")
#print w.extract(out2)
#print "min jpg quality:", test_jpg(w, out2)

#print w2.extract(out2)
#print "min jpg quality:", test_jpg(w2, out2)
コード例 #7
0
ファイル: simple.py プロジェクト: KWMalik/tau
import numpy
from scipy import misc
from watermarker import Watermarker
from test import test_jpg, add_blocks, test_filter
from skimage.exposure import rescale_intensity


w = Watermarker(6, 4)
w2 = Watermarker(6, 4, mother="haar", seed=212219812811)
# src = misc.imread("../qrmark/pics/sky.png")
src = misc.imread("pics/face.jpg")
# src = misc.lena()
out = w.embed(src, "123456", k=3, tv_denoising_weight=0)
out = w2.embed(out, "789012", k=4, tv_denoising_weight=0)
misc.imsave("orig.png", out)
out2 = misc.imread("orig.png")
print w.extract(out2)
print "min jpg quality:", test_jpg(w, out2)

print w2.extract(out2)
print "min jpg quality:", test_jpg(w2, out2)

# import random
# random.seed(3286912)
# print "Max random block coverage: ", test_filter(w, out2, "blocks-%s.png",
#    lambda img, k: add_blocks(img, k, 50, 50), [i/20.0 for i in range(1, 20)])
コード例 #8
0
ファイル: embed.py プロジェクト: Peaker/tau
parser.add_option("-m", dest="mother", type=str, default = "bior3.1",
    help="The mother wavelet (default is bior3.1)")
parser.add_option("-t", dest="tv_weight", type=int, default = 0,
    help="TV denoising weight (default is 0, meaning no denoising is performed)")
parser.add_option("-p", dest="payload_length", type=int, default = 6,
    help="Payload length (default is 6)")
parser.add_option("-e", dest="ecc_length", type=int, default = 4,
    help="ECC length (default is 4)")


if __name__ == "__main__":
    (options, args) = parser.parse_args()
    if len(args) != 2:
        parser.error("Usage: [options] <input image file> <payload>")
    infile, payload = args
    if not options.outfile:
        options.outfile = "%s-%s.png" % (os.path.basename(infile).split(".")[0], payload)
    
    t0 = time.time()
    w = Watermarker(options.payload_length, options.ecc_length, seed = options.seed, 
        mother = options.mother)
    out = w.embed(misc.imread(infile), payload, options.k)
    t1 = time.time()
    if options.tv_weight > 0:
        out = tv_denoise(out, options.tv_weight)
    
    misc.imsave(options.outfile, out)
    print "Created %s in %s seconds" % (options.outfile, t1-t0)


コード例 #9
0
                  type=int,
                  default=6,
                  help="Payload length (default is 6)")
parser.add_option("-e",
                  dest="ecc_length",
                  type=int,
                  default=4,
                  help="ECC length (default is 4)")

if __name__ == "__main__":
    (options, args) = parser.parse_args()
    if len(args) != 2:
        parser.error("Usage: [options] <input image file> <payload>")
    infile, payload = args
    if not options.outfile:
        options.outfile = "%s-%s.png" % (
            os.path.basename(infile).split(".")[0], payload)

    t0 = time.time()
    w = Watermarker(options.payload_length,
                    options.ecc_length,
                    seed=options.seed,
                    mother=options.mother)
    out = w.embed(misc.imread(infile), payload, options.k)
    t1 = time.time()
    if options.tv_weight > 0:
        out = tv_denoise(out, options.tv_weight)

    misc.imsave(options.outfile, out)
    print "Created %s in %s seconds" % (options.outfile, t1 - t0)
コード例 #10
0
ファイル: extract.py プロジェクト: KWMalik/tau
#!/usr/bin/python
import sys
import os
from watermarker import Watermarker
from scipy import misc

if __name__ == "__main__":
    if len(sys.argv) != 2:
        parser.error("Usage: <input file>")
    w = Watermarker(6, 4)
    print w.extract(misc.imread(sys.argv[1]))


コード例 #11
0
import time
from watermarker import Watermarker
from scipy import misc
from optparse import OptionParser

parser = OptionParser()
parser.add_option("-s", dest="seed", type=int, default = 1895746671,
    help="The PRNG seed (if not given, a default one is used)")
parser.add_option("-m", dest="mother", type=str, default = "bior3.1",
    help="The mother wavelet (default is bior3.1)")
parser.add_option("-p", dest="payload_length", type=int, default = 6,
    help="Payload length (default is 6)")
parser.add_option("-e", dest="ecc_length", type=int, default = 4,
    help="ECC length (default is 4)")


if __name__ == "__main__":
    (options, args) = parser.parse_args()
    if len(args) != 1:
        parser.error("Usage: [options] <input image file>")
    w = Watermarker(options.payload_length, options.ecc_length, seed = options.seed, 
        mother = options.mother)
    src = misc.imread(sys.argv[1])
    
    t0 = time.time()
    print w.extract(src)
    t1 = time.time()
    
    print "Extraction took %s" % (t1 - t0,)