У меня есть набор данных рисунков от руки, и мне нужно было создать маленькие квадратные изображения из асимметричных рисунков.
Благодаря @vijay jha я создал квадратных изображений , сохраняя при этом соотношение сторон исходного изображения. Одна проблема заключалась в том, что чем больше вы уменьшали, тем больше информации было потеряно.
512x256 - 64x64 будут выглядеть так:
Я изменил бит исходного кода для плавного уменьшения изображения.
from skimage.transform import resize, pyramid_reduce
def get_square(image, square_size):
height, width = image.shape
if(height > width):
differ = height
else:
differ = width
differ += 4
# square filler
mask = np.zeros((differ, differ), dtype = "uint8")
x_pos = int((differ - width) / 2)
y_pos = int((differ - height) / 2)
# center image inside the square
mask[y_pos: y_pos + height, x_pos: x_pos + width] = image[0: height, 0: width]
# downscale if needed
if differ / square_size > 1:
mask = pyramid_reduce(mask, differ / square_size)
else:
mask = cv2.resize(mask, (square_size, square_size), interpolation = cv2.INTER_AREA)
return mask
512x256 -> 64x64
512x256 -> 28x28
Вам нужно будет использовать "EntityDataSource" на вашей странице и использовать его для сортировки и разбиения по страницам. Подробнее см. Документация MSDN .
Если вы «материализуете» свой список данных с помощью вызова .ToList (), вы потеряете все эти возможности.