首页 > 社交 > 科普中国

十多行代码生成原帖和临写对照图

常驻编辑 科普中国 2022-06-24 原帖   代码   使用说明   文件名   分解   原代码   形式   核心   参数   图片

介绍

这个小工具把原帖和临写分解成多列对照的形式。0AF拜客生活常识网

输入原帖图片,0AF拜客生活常识网

0AF拜客生活常识网

和输入临写图片,0AF拜客生活常识网

0AF拜客生活常识网

生成对照图片。0AF拜客生活常识网

0AF拜客生活常识网


0AF拜客生活常识网

使用说明

运行compare.py文件,输入参数为:原帖图片文件名,临写图片文件名,列数。0AF拜客生活常识网

python3 compare.py   

原代码

好吧,严格点,应该说核心代码就第13行到23行十来行代码。0AF拜客生活常识网

from skimage import io
from skimage import transform
from skimage.color import rgb2gray

import numpy as np

import matplotlib.pyplot as plt

import sys
import os.path

def main(modelname, copiedname, colnum):
    copied = io.imread(copiedname)
    copied = rgb2gray(copied) * 255
    model = io.imread(modelname)
    model = rgb2gray(model)
    model = transform.resize(model, copied.shape) * 255

    r = np.zeros((copied.shape[0], copied.shape[1]*2), np.uint8)
    width = copied.shape[1] // colnum
    for i in range(colnum):
        r[:, 2*i*width:(2*i+1)*width] = model[:, i*width:(i+1)*width]
        r[:, (2*i+1)*width:(2*i+2)*width] = copied[:, i*width:(i+1)*width]
    
    name, ext = os.path.splitext(copiedname)
    name += "_cmp.jpg"
    io.imsave(name, r)
    #name = os.path.join(os.path.dirname(copiedname), "comparison.jpg")

    plt.figure()
    plt.imshow(r, cmap=plt.cm.gray)
    plt.show()

if __name__ == "__main__":
    if len(sys.argv) == 4:
        modelname = sys.argv[1]
        copiedname = sys.argv[2]
        colnum = int(sys.argv[3])
    else:
        print("usage: python3 compare.py   ")
        sys.exit()
    
    main(modelname, copiedname, colnum)

相关阅读:

  • 炉石卡组代码怎么用(炉石传说代码怎么用不了)
  • 伪代码怎么写(伪代码及其实例讲解)
  • 代码怎么写(自学代码)
  • gta5多少钱(steam免费拿GTA5代码)
  • 黑龙江在哪里(34个省代码)
  • cn是哪个国家(cn代码的含义)
  • 52哪个国家(国家代码52是哪个国家)
  • 如何看代码(代码怎么编写)
  • 如何编辑程序(计算机的代码怎么编写)
  • can什么国家(CAN是哪里的三字代码)
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。