def mkdmtx(msg): dm_write = DataMatrix() dm_write.encode(msg) pi = dm_write.image # .resize((14, 14)) cv_im = cv.CreateImageHeader(pi.size, cv.IPL_DEPTH_8U, 3) cv.SetData(cv_im, pi.tostring()) return cv_im
def __image_generator(self): def id_generator(size=16, max_letter=6): _str = '' _letter_cnt = 0 for i in range(size): if _letter_cnt < max_letter: _c = random.choice(string.ascii_uppercase + string.digits) if _c in string.ascii_uppercase: _letter_cnt += 1 else: _c = random.choice(string.digits) _str += _c return _str def blur_method(_im, m): if m == 0: return _im elif m == 1: return cv2.GaussianBlur(_im, (5, 5), 0) elif m == 2: return cv2.blur(_im, (5,5)) elif m == 3: return cv2.medianBlur(_im, 5) else: return _im def brightness(_im): _brightness_offset = np.random.randint(-50, 50) return cv2.convertScaleAbs(_im, alpha=1, beta=_brightness_offset) _dmtx = DMTX(shape=3)# shape=3 is 16x16 while True: # 022RDXBTH4001093 _str = id_generator(16, 2) _dmtx.encode(_str) _im = np.array(_dmtx.image)# [:,:,::-1] _im = cv2.cvtColor(_im, cv2.COLOR_RGB2GRAY) _im = cv2.resize(_im, (self.im_shape[1]-12, self.im_shape[0]-12)) _h, _w = _im.shape[:2] # random mirco rotation _angle = np.random.randint(-6, 6) / 2.0 _rot_mat = cv2.getRotationMatrix2D((_w / 2, _h / 2), _angle, 1) _im = cv2.warpAffine(_im, _rot_mat, (_w, _h)) # get label _label = cv2.resize(_im, (self.la_shape[1], self.la_shape[0])) # low-resolution _scale = np.random.choice(range(1, 6)) _im = cv2.resize(_im, (0,0), fx=1/float(_scale), fy=1/float(_scale)) _im = cv2.resize(_im, (self.im_shape[1]-12, self.im_shape[0]-12)) # add border. Need by net. 112 -> 100 _im = cv2.copyMakeBorder(_im, 6, 6, 6, 6, cv2.BORDER_REPLICATE) # add noise _im = blur_method(_im, np.random.choice(range(0, 4))) _im = brightness(_im) # to caffe data format _im = _im.astype(np.float32, copy=False) _label = _label.astype(np.float32, copy=False) _im *= 0.0039215684 _label *= 0.0039215684 yield _im, _label
def gen_dmtx(): def id_generator(size=16, max_letter=6): _str = '' _letter_cnt = 0 for i in range(size): if _letter_cnt < max_letter: _c = random.choice(string.ascii_uppercase + string.digits) if _c in string.ascii_uppercase: _letter_cnt += 1 else: _c = random.choice(string.digits) _str += _c return _str _dmtx = DMTX(shape=3) # shape=3 is 16x16 while True: # 022RDXBTH4001093 _str = id_generator(16) try: _dmtx.encode(_str) except Exception, e: continue _im = np.array(_dmtx.image)[:, :, ::-1] yield _im
from pydmtx import DataMatrix from PIL import Image # Write a Data Matrix barcode dm_write = DataMatrix() dm_write.encode("Hello, world!") dm_write.save("hello.png", "png") # Read a Data Matrix barcode dm_read = DataMatrix() img = Image.open("hello.png") print dm_read.decode(img.size[0], img.size[1], buffer(img.tostring())) print dm_read.count() print dm_read.message(1) print dm_read.stats(1)
digest.update(cryptimage.compress_key(ecpubkey)) fingerprint = digest.digest() # NID_X9_62_prime256v1 ephemeral = EC.gen_params(EC.NID_X9_62_prime256v1) ephemeral.gen_key() ephpub=cryptimage.strip_asn1(ephemeral.pub().get_der()) ephpub=cryptimage.compress_key(ephpub) shared = ephemeral.compute_dh_key(ecpub.pub()) #strip second half of key which is y cordinates and can be derived from first half dk=cryptimage.KDF(shared[:len(shared)/2],128,fingerprint) if debug: sys.stderr.write("dk = %s\n" % binascii.b2a_hex(dk)) account="2000111122223333" amount="1500050" pin="7654" data=cryptimage.dataencode(account,amount,pin) ct = cryptimage.encrypt_data(dk,data) message = cryptimage.build_message(ephpub, ct) dm_write = DataMatrix(scheme=DataMatrix.DmtxSchemeBase256) dm_write.encode(message) dm_write.save("dm.png", "png") sys.exit(0)
def writeDM(self): # Write a Data Matrix barcode dm_write = DataMatrix() dm_write.encode("Hello, world!") dm_write.save("hello.png", "png") return
import os from pydmtx import DataMatrix from PIL import Image #------------------------------------------------------------ # write a data matrix barcode #------------------------------------------------------------ path = os.path.abspath('.') path = os.path.join(path, 'hello.png') matrix = DataMatrix() matrix.encode("Hello, world!") matrix.save(path, "png") #------------------------------------------------------------ # read a data matrix Barcode #------------------------------------------------------------ matrix = DataMatrix() image = Image.open(path) print matrix.decode(image.size[0], image.size[1], buffer(image.tostring())) print matrix.count() print matrix.message(1) print matrix.stats(1)
#!/usr/bin/python from PIL import Image from pydmtx import DataMatrix import sys import cv2.cv as cv #Decoding data OpenCV img = cv.LoadImage(sys.argv[1]) dm = DataMatrix() print dm.decode(img.width, img.height, img.tostring()) sys.exit(0) #Decoding data img = Image.open(sys.argv[1]) if img.mode != 'RGB': img = img.convert('RGB') dm = DataMatrix() print dm.decode(img.size[0], img.size[1], buffer(img.tostring())) ''' #Encode Data dm.encode("Hello World") dm.save("test.jpg","jpeg") '''