在进行神经网络测试时,可以
- 直接将图像作为输入从而进行测试
- 利用图片分块,然后送进网络进行一个测试后进行合成
对于方法二,我们可以看看以下操作:
进行放大查看我们的merge
后的结果,可以发现,虽然超分结果也是2048*2048pixel
,但是会合并出来的交界处的横线,严重影响评估效果。
图像分块合成的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()