制作论文图示、论文图像的脚本、细节放大并合成一张图

本文已参与「新人创作礼」活动,一起开启掘金创作之路。​

目录

背景

代码

总结


背景

不少论文会有将细节之处放大对比,然后进行说明问题,如下,不知道他们如何实现,我写了个脚本,方便写论文制图。效果如下图所示。使用时需要修改代码如存储位置,和放大区域的坐标。具体见代码

代码

# -*- coding: utf-8 -*-
##
#author QQ:1913434222; WeChat:ALocus
##
import cv2
path = r'C:\Users\Administrator\Desktop\1.jpg'
im_sou = cv2.imread(path)
print(im_sou.shape)

im_sou2 = im_sou

###修改这里,需要知道两个点,左上和右下的坐标####
##从win10自带画图中打开你要选择放大的区域,下面可以看到坐标,看到横纵坐标换下填到下面####
#左上点
lefttop_x = 19
lefttop_y = 200
#右下点
rightdown_x = 67
rightdown_y = 262

#水平
for x in range(lefttop_x,rightdown_x+1):
    im_sou2[x,lefttop_y,0] = 0
    im_sou2[x, lefttop_y, 1] = 0
    im_sou2[x, lefttop_y, 2] = 255

    im_sou2[x,rightdown_y,0] = 0
    im_sou2[x, rightdown_y, 1] = 0
    im_sou2[x, rightdown_y, 2] = 255

for y in range(lefttop_y, rightdown_y+1):
    im_sou2[lefttop_x, y, 0] = 0
    im_sou2[lefttop_x, y, 1] = 0
    im_sou2[lefttop_x, y, 2] = 255

    im_sou2[rightdown_x, y, 0] = 0
    im_sou2[rightdown_x, y, 1] = 0
    im_sou2[rightdown_x, y, 2] = 255

###从画图中x,y,相反
lefttop_x = lefttop_x-1
lefttop_y = lefttop_y-1

rightdown_x = rightdown_x+1
rightdown_y = rightdown_y+1
# 水平
for x in range(lefttop_x, rightdown_x + 1):
    im_sou2[x, lefttop_y, 0] = 0
    im_sou2[x, lefttop_y, 1] = 0
    im_sou2[x, lefttop_y, 2] = 255

    im_sou2[x, rightdown_y, 0] = 0
    im_sou2[x, rightdown_y, 1] = 0
    im_sou2[x, rightdown_y, 2] = 255

for y in range(lefttop_y, rightdown_y + 1):
    im_sou2[lefttop_x, y, 0] = 0
    im_sou2[lefttop_x, y, 1] = 0
    im_sou2[lefttop_x, y, 2] = 255

    im_sou2[rightdown_x, y, 0] = 0
    im_sou2[rightdown_x, y, 1] = 0
    im_sou2[rightdown_x, y, 2] = 255


select = im_sou2[lefttop_x:rightdown_x+1,lefttop_y:rightdown_y+1,:]
dst=cv2.resize(select,(0,0),fx=2,fy=2,interpolation=cv2.INTER_CUBIC)

h,w,c = dst.shape
im_sou2[-h:,-w:,:] = dst
cv2.imshow('1',im_sou2)
#######修改这里,作为合成后的图示保存的位置###
cv2.imwrite(r'C:\Users\Administrator\Desktop\blend_select.jpg',im_sou2)
cv2.imshow('11',dst)
#######修改这里,作为你选择的区域的图示保存的位置###
cv2.imwrite(r'C:\Users\Administrator\Desktop\blend_selected.jpg',dst)

cv2.waitKey(0)
复制代码

总结

当然由于放大是通过插值的方式进行的放大 可能有失偏颇,但是论文全图保持一致就可以啦

猜你喜欢

转载自juejin.im/post/7095643093000519688