biubiugogo 2022-10-06 21:36 采纳率: 0%
浏览 52
已结题

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)


    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的

  • 写回答

1条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

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

      悬赏问题

      • ¥15 存在一定规律的数据转置和整理
      • ¥15 关于flowable工作流开发的一个问题
      • ¥20 VBA如何用代码在onedrive创建文件夹?
      • ¥15 在proteus中,以及使用dosbox出现了link:fatal error L 1093:.obj:object file not found
      • ¥15 多理发师睡眠问题,2个理发师,n个座椅
      • ¥15 FPGA两按键控制led灯程序
      • ¥40 大学的python问题,用python解决
      • ¥30 用Java实现网上商场购物车功能
      • ¥15 程序设计:食堂菜品管理系统
      • ¥15 1920的分辨率,但浏览器却显示1600*900像素