实验室项目需要在一幅大遥感图像中手动选择区域传入目标检测网络,写了点小代码。
首先利用matplotlib和PIL选出裁剪区域,生成crop子图,再利用numpy填充至需要的大小,再进行裁剪(指定大小),因为填充过了,不会存在大小不合规范。
在这里插入代码片
```import numpy as np
from PIL import ImageFile
from PIL import Image
ImageFile.LOAD_TRUNCATED_IMAGES = True
Image.MAX_IMAGE_PIXELS = None
import matplotlib.pyplot as plt
def select():
global imgpath
img = Image.open(r'./result/result_0.tif')
size = img.size
plt.imshow(img)
x = size[0]
y = size[1]
plt.plot(x, y)
pos = plt.ginput(2)
croptxt = './crop.txt'
left, top, right, bottom = int(pos[0]