利用分块进行网络输入测试

在进行神经网络测试时,可以

  1. 直接将图像作为输入从而进行测试
  2. 利用图片分块,然后送进网络进行一个测试后进行合成

对于方法二,我们可以看看以下操作:

Snipaste_2020-11-17_20-43-18

进行放大查看我们的merge后的结果,可以发现,虽然超分结果也是2048*2048pixel但是会合并出来的交界处的横线,严重影响评估效果。

Snipaste_2020-11-17_20-36-35

图像分块合成的python代码如下:

import PIL.Image as Image
import os

IMAGES_PATH = r'D:\result\X4\patch\'
IMAGES_FORMAT = ['.jpg', '.tif'] 
IMAGE_SIZE = 512
IMAGE_ROW = 4 
IMAGE_COLUMN = 4
IMAGE_SAVE_PATH = r'D:\result\X4\merged1.tif'

image_names = [name for name in os.listdir(IMAGES_PATH) for item in IMAGES_FORMAT if
               os.path.splitext(name)[1] == item]

print(image_names)
if len(image_names) != IMAGE_ROW * IMAGE_COLUMN:
    raise ValueError("合成图片的参数和要求的数量不能匹配!")

def image_compose():
    to_image = Image.new('RGB', (IMAGE_COLUMN * IMAGE_SIZE, IMAGE_ROW * IMAGE_SIZE)) 
   
    i = 1
    for x in range(1, IMAGE_COLUMN + 1):   # 此处要注意根据自己的分块修改
       for y in range(1, IMAGE_ROW + 1):
            from_image = Image.open(IMAGES_PATH + str(i) + '.tif').resize(
                (IMAGE_SIZE, IMAGE_SIZE), Image.ANTIALIAS)
            to_image.paste(from_image, ((x - 1) * IMAGE_SIZE, (y - 1) * IMAGE_SIZE))
            i = i + 1
    return to_image.save(IMAGE_SAVE_PATH)  


image_compose()  
原文地址:https://www.cnblogs.com/zgqcn/p/13996405.html