def Image1_yinxie():
img=np.array(Image.open(beiyinxie_image))
mark=np.array(Image.open(mark_image))
rows,cols,dims=mark.shape
for i in range(0,dims):
for j in range(0,rows*2):
for k in range(0,cols*2):
img[j,k,i]=img[j,k,i]&252
for i in range(0,dims):
for j in range(0,rows):
for k in range(0,cols):
img[2*j,2*k,i]=img[2*j,2*k,i]+(mark[j,k,i]&192)//64
img[2*j,2*k+1,i]=img[2*j,2*k+1,i]+(mark[j,k,i]&48)//16
img[2*j+1,2*k,i]=img[2*j+1,2*k,i]+(mark[j,k,i]&12)//4
img[2*j+1,2*k+1,i]=img[2*j+1,2*k+1,i]+(mark[j,k,i]&3)
#print(2*j+1,2*k+1)
img=Image.fromarray(img)
global new_image
new_image = beiyinxie_image[:-4]+"_with_mark1."+beiyinxie_image[-3:]
img.save(new_image)
old = cv2.imread(beiyinxie_image)
new = cv2.imread(new_image)
b,g,r = cv2.split(old)
old = cv2.merge([r,g,b])
b,g,r = cv2.split(new)
new = cv2.merge([r,g,b])
plt.figure(figsize=(6, 7)) #matplotlib设置画面大小 600*700
#plt.suptitle('LSB信息隐藏')
plt.subplot(2,2,1)
plt.imshow(old)
plt.title("原始图像")
plt.subplot(2,2,2)
plt.hist(old.ravel(), 256, [0,256])
plt.title("原始图像直方图")
plt.subplot(2,2,3)
plt.imshow(new)
plt.title("隐藏信息的图像")
plt.subplot(2,2,4)
plt.hist(new.ravel(), 256, [0,256])
plt.title("隐藏信息图像直方图")
plt.tight_layout() #设置默认的间距
plt.show()
imgwmark=np.array(Image.open(new_image))
result=imgwmark
rows,cols,dims=imgwmark.shape
rows=rows//2
cols=cols//2
for i in range(0,dims):
for j in range(0,rows*2):
for k in range(0,cols*2):
imgwmark[j,k,i]=imgwmark[j,k,i]&3
for i in range(0,dims):
for j in range(0,rows):
for k in range(0,cols):
result[j,k,i]=imgwmark[2*j,2*k,i]*64+imgwmark[2*j,2*k+1,i]*16
+imgwmark[2*j+1,2*k,i]*4+imgwmark[2*j+1,2*k+1,i]
mark_get=Image.fromarray(result)
mark_get.save(tiqu)
有没有懂哥,把它写成matlab的