|
- '''
- # @time:2022/11/30 18:42
- # Author:Tuan
- # @File:down_sample.py
- '''
- import torch
- import torch.nn as nn
- import imageio
- import numpy as np
- import os
-
- def cut_image(image, image_name, block_size, stride, save_path):
-
- row = image.shape[0]
- col = image.shape[1]
- dep = image.shape[2]
- # if row % block_size != 0 or col % block_size != 0:
- print('Need padding the image...')
- # 计算填充后图像的 hight 和 width
- padding_h = (row // block_size + 1) *block_size
- padding_w = (col // block_size + 1) *block_size
- # 初始化一个 0 矩阵,将图像的值赋值到 0 矩阵的对应位置
- padding_img = np.zeros((padding_h, padding_w, dep), dtype='float32')
- padding_img[:row, :col, :] = image[:row, :col, :]
-
- row_num = 0
- for i in list(np.arange(0, row, stride)):
- row_num += 1
-
- if (i + block_size) > row:
- continue
-
- col_num = 0
- for j in list(np.arange(0, col, stride)):
- col_num += 1
-
- if (j + block_size) > col:
- continue
-
- block = np.array(padding_img[i: i+block_size, j: j+block_size, :])
- block_name = image_name + '_' + str(int(row_num)) + '_' + str(int(col_num)) + '.tif'
-
- imageio.imwrite(os.path.join(save_path, block_name), block)
-
- class dowan_sample(nn.Module):
- def __init__(self):
- super(dowan_sample, self).__init__()
- self.maxpooling = nn.MaxPool2d(2,stride=2)
-
- def forward(self,x):
- x = self.maxpooling(x)
-
- return x
-
- dowan_sample = dowan_sample()
- image_path = R"C:\Users\224\Desktop\岸线\开题\数据\岸线_1080.tif"
- save_path = r"C:\Users\224\Desktop\岸线\1.tif"
- image_big = imageio.imread(image_path)
- image_small = imageio.imread(save_path)
- image_name = "1"
- path = r"C:\Users\224\Desktop\岸线\开题\数据\cut"
- cut_image(image_big, image_name, 360, 360, path)
- # image = np.transpose(image, (2, 0, 1))
- # image = torch.from_numpy(image).float()
- # image = image.reshape([1,image.shape[0],image.shape[1],image.shape[2]])
- # output = dowan_sample(image)
- # output = np.squeeze(output, axis = 0)
- # output = torch.permute(output,(1,2,0))
- # # output = output.reshape([output.shape[-2],output.shape[-1]])
- # imageio.imwrite(save_path,output)
|