biubiugogo 2022-10-06 21:36 采纳率: 0%

# python代码转换成matlab #图像处理

``````
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)

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)

``````

• 写回答

• 系统已结题 10月14日
• 创建了问题 10月6日

#### 悬赏问题

• ¥15 存在一定规律的数据转置和整理
• ¥15 关于flowable工作流开发的一个问题
• ¥20 VBA如何用代码在onedrive创建文件夹?