pip install opencv-python
main.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# Python program to demonstrate # image steganography using OpenCV import cv2 import numpy as np import random # Encryption function def encrypt(): # img1 and img2 are the # two input images img1 = cv2.imread('pic1.jpg') img2 = cv2.imread('pic2.jpg') for i in range(img2.shape[0]): for j in range(img2.shape[1]): for l in range(3): # v1 and v2 are 8-bit pixel values # of img1 and img2 respectively v1 = format(img1[i][j][l], '08b') v2 = format(img2[i][j][l], '08b') # Taking 4 MSBs of each image v3 = v1[:4] + v2[:4] img1[i][j][l]= int(v3, 2) cv2.imwrite('pic3in2.png', img1) # Decryption function def decrypt(): # Encrypted image img = cv2.imread('pic3in2.png') width = img.shape[0] height = img.shape[1] # img1 and img2 are two blank images img1 = np.zeros((width, height, 3), np.uint8) img2 = np.zeros((width, height, 3), np.uint8) for i in range(width): for j in range(height): for l in range(3): v1 = format(img[i][j][l], '08b') v2 = v1[:4] + chr(random.randint(0, 1)+48) * 4 v3 = v1[4:] + chr(random.randint(0, 1)+48) * 4 # Appending data to img1 and img2 img1[i][j][l]= int(v2, 2) img2[i][j][l]= int(v3, 2) # These are two images produced from # the encrypted image cv2.imwrite('pic2_re.png', img1) cv2.imwrite('pic3_re.png', img2) # Driver's code encrypt() decrypt() |