Ejemplo n.º 1
0
def sliceAndEmbed(frames, secret_img_path, occ):
	''' Partitions secret image into smaller images and embeds them in cover video '''
	secret_img = Image.open(secret_img_path)
	frame_h, frame_w = frames[0].shape[:2]
	secret_h, secret_w = secret_img.size[1], secret_img.size[0]
	# Temporarily(& Arbritrarily) setting max slice size as 1 sixth of cover image
	max_h, max_w = frame_h/6, frame_w/6
	numberOfSlices = ceil(secret_h/max_h)*ceil(secret_w/max_w)
	tiles = image_slicer.slice(secret_img_path, numberOfSlices, save=False)

	# Rough Index data for now
	indexData = str(secret_img.size[0]) + ";" + str(secret_img.size[1]) + ";" 
	indexData+= str(len(tiles)) + ";" + str(tiles[0].image.size[0]) + ';' + str(tiles[0].image.size[1]) + '.'
	index = multi_text_sender.generateRandomFrameNo(len(frames), occ)
	for i in tiles:
		loc = multi_text_sender.generateRandomFrameNo(len(frames), occ)
		indexData += str(loc) + '.'
		cover_img = Image.fromarray(frames[loc])
		temp = ioi.hide_image(cover_img, i.image)
		frames[loc] = np.array(temp)

	# Index
	cover_img = Image.fromarray(frames[index])
	temp = ioi.hide_image(cover_img, i.image)
	frames[index] = np.array(temp)
	return frames
Ejemplo n.º 2
0
def sliceAndEmbed(frames, secret_img_path, occ):
    ''' Partitions secret image into smaller images and embeds them in cover video '''
    secret_img = Image.open(secret_img_path)
    frame_h, frame_w = frames[0].shape[:2]
    secret_h, secret_w = secret_img.size[1], secret_img.size[0]
    # Temporarily(& Arbritrarily) setting max slice size as 1 sixth of cover image
    max_h, max_w = frame_h / 6, frame_w / 6
    numberOfSlices = ceil(secret_h / max_h) * ceil(secret_w / max_w)
    tiles = image_slicer.slice(secret_img_path, numberOfSlices, save=False)

    # Rough Index data for now
    indexData = str(secret_img.size[0]) + ";" + str(secret_img.size[1]) + ";"
    indexData += str(len(tiles)) + ";" + str(
        tiles[0].image.size[0]) + ';' + str(tiles[0].image.size[1]) + '.'
    index = multi_text_sender.generateRandomFrameNo(len(frames), occ)
    for i in tiles:
        loc = multi_text_sender.generateRandomFrameNo(len(frames), occ)
        indexData += str(loc) + '.'
        cover_img = Image.fromarray(frames[loc])
        i.image = i.image.convert('RGB')
        temp = ioi.hide_image(cover_img, i.image)
        temp = temp.convert('RGBA')
        frames[loc] = np.array(temp)

    # Index
    cover_img = Image.fromarray(frames[index])
    temp = stepic.encode(cover_img, indexData)
    frames[index] = np.array(temp)
    print index
    return frames
def extract(frames, index):
	img = Image.fromarray(frames[index])
	indexData = stepic.decode(img).decode()
	indexData = indexData.split('.')
	metaData = indexData[0].split(';')
	secret_img_size = (int(metaData[0]), int(metaData[1]))
	noOfTiles = int(metaData[2])
	slice_size = (int(metaData[3]), int(metaData[4]))
	t = []
	for i in range(1,len(indexData)):
		temp = frames[int(i)]
		res = ioi.extract_image(Image.fromarray(temp)).resize((slice_size[0], slice_size[1]))
		t.append(res)
	extracted_image = reassemble_image(t, slice_size, secret_img_size[0]/slice_size[0], secret_img_size[1]/slice_size[1])
	return extracted_image
Ejemplo n.º 4
0
def extract(frames, index):
    img = Image.fromarray(frames[index])
    indexData = stepic.decode(img).decode()
    indexData = indexData.split('.')
    metaData = indexData[0].split(';')
    secret_img_size = (int(metaData[0]), int(metaData[1]))
    noOfTiles = int(metaData[2])
    slice_size = (int(metaData[3]), int(metaData[4]))
    t = []
    for i in indexData[1:len(indexData) - 1]:
        temp = frames[int(i)]
        # Image.fromarray(temp).save('recvd'+i+'.png')
        res = ioi.extract_image(Image.fromarray(temp)).resize(
            (slice_size[0], slice_size[1]))
        t.append(res)
    extracted_image = reassemble_image(t, slice_size,
                                       secret_img_size[0] / slice_size[0],
                                       secret_img_size[1] / slice_size[1])
    return extracted_image